| name | project-index |
| description | Kite's project registry — a structured JSON index of all active projects. |
| category | productivity |
| maturity | stable |
| tags | ["project-registry","status-tracking","json-index","cron","metadata"] |
project-index
Kite's project registry — a structured JSON index of all active projects.
Always know what's running, what state it's in, and what comes next.
Data file
${PROJECT_INDEX_HOME:-$HOME/projects/project-index}/../index.json (default: ~/projects/index.json) — shared across all projects, one source of truth.
CLI location
${PROJECT_INDEX_HOME:-$HOME/projects/project-index}/index.cjs
Alias: alias pj="node ${PROJECT_INDEX_HOME:-$HOME/projects/project-index}/index.cjs"
When to use
Use this skill whenever the user (or Kite internally) asks about:
- "what are you working on?"
- "show project status"
- "what's the status of X?"
- "update the project index"
- "mark X as done"
- "what's next for Y?"
Commands
node ${PROJECT_INDEX_HOME:-$HOME/projects/project-index}/index.cjs list
node ${PROJECT_INDEX_HOME:-$HOME/projects/project-index}/index.cjs list --status active
node ${PROJECT_INDEX_HOME:-$HOME/projects/project-index}/index.cjs show web-monitor
node ${PROJECT_INDEX_HOME:-$HOME/projects/project-index}/index.cjs add \
--id my-tool \
--name "My Tool" \
--path ~/projects/<your-tool> \
--github JansenAnalytics/my-tool \
--desc "Does something cool" \
--tags monitoring,cron \
--cron "*/15 * * * *"
node ${PROJECT_INDEX_HOME:-$HOME/projects/project-index}/index.cjs update web-monitor \
--status active \
--last-action "Fixed regex check" \
--next "Add Slack notification"
node ${PROJECT_INDEX_HOME:-$HOME/projects/project-index}/index.cjs note web-monitor "Added BTC price check"
node ${PROJECT_INDEX_HOME:-$HOME/projects/project-index}/index.cjs done stock-watcher
node ${PROJECT_INDEX_HOME:-$HOME/projects/project-index}/index.cjs archive stock-watcher
Kite behaviour
When the user asks about project status, Kite should:
- Run
list and present a clean summary
- On
show <id>, present all fields
- After completing any task that modifies a project, run
update or note to record it
- When starting a new project, run
add immediately
Index schema
{
"id": "web-monitor",
"name": "Web Monitor",
"path": "$HOME/projects/web-monitor",
"github": "JansenAnalytics/web-monitor",
"status": "active",
"description": "Configurable URL/content monitor",
"last_action": "Deployed and watching Eric Bloodaxe silver bar",
"next_steps": [],
"tags": ["monitoring", "cron"],
"cron": "*/15 * * * *",
"created_at": "2026-02-21",
"updated_at": "2026-02-21"
}
Fields:
status: active | done | archived | paused
next_steps: array of strings (append with --next)
cron: null or cron expression
last_action: free text, updated with note or update --last-action