A CLI task manager for coding agents

Start each agent session on the next ticket.

Ajiya keeps the project plan in your repo while your agent works through one ticket at a time. When a session ends, the next one picks up from the same status and dependencies. The local dashboard shows what is ready, blocked or waiting for you.

npm install -g @ajiya/cli
See how it works

Then run ajiya init in your project. More options

Works with Claude Code, Codex and Cursor.

The dashboard

See what can move and what is blocked.

Run ajiya serve to open the local dashboard. It shows ready work, launch dependencies and decisions waiting for you. This sample project is a learning platform.

Next up

Learning Platform · ajiya serve
Learning Platform
Overview
Next up3
Board
Dependencies
Phases3
Tickets9
Apps2
Checks3
Activity4
9 tickets · 2 apps

Next up

Tickets that can start now, in the order ajiya next gives: earliest milestone first, then what unblocks most.

Milestone launch 1
LP-0010launchCan start now
Assessments
Course catalog · api · unblocks 1
Unblocked by LP-0007
Not in a milestone 2
LP-0011Can start now
Instructor tools
Course catalog · web
Unblocked by LP-0004
LP-0012Can start now
Notifications
Accounts · api
Unblocked by LP-0004

Board

Learning Platform · ajiya serve
Learning Platform
Overview
Next up3
Board
Dependencies
Phases3
Tickets9
Apps2
Checks3
Activity4
9 tickets · 2 apps

Board

Every ticket by where it stands.

9 tickets
Can start now
3
Open, nothing in the way
LP-0010launch
Assessments
Course catalog · api · unblocks 1
LP-0011
Instructor tools
Course catalog · web
LP-0012
Notifications
Accounts · api
In progress
1
Started
LP-0008launch
Learner enrollment
Course catalog · api · unblocks 2
Waiting
3
Open dependencies or blocked
LP-0009launch
Course player
Course catalog · web · unblocks 1
Waiting on LP-0008
LP-0013launch
Progress tracking
Course catalog · api · unblocks 1
Waiting on LP-0008
LP-0014launch
Production readiness
Production · api
Waiting on LP-0009LP-0010LP-0013
Needs a human
0
Only a person can finish these
None
Done
2
Done or dropped
LP-0004launchDone
Learner accounts
Accounts · api
Done · 3f2a91c · tests passed
LP-0007launchDone
Course catalog API
Course catalog · api
Done · 4f2a91c · tests passed

Dependencies

Learning Platform · ajiya serve
Learning Platform
Overview
Next up3
Board
Dependencies
Phases3
Tickets9
Apps2
Checks3
Activity4
9 tickets · 2 apps

Dependencies

What waits on what. An arrow points from a dependency to what needs it; columns go left to right by depth.

All ticketsLP-0014 waits on LP-0009, which waits on LP-0008
DoneIn progress or can startWaitingBlocked chain
No dependenciesDepth 1Depth 2Depth 3 LP-0007doneCourse catalog API LP-0004doneLearner accounts LP-0008in progressLearner enrollment LP-0010can startAssessments LP-0011can startInstructor tools LP-0012can startNotifications LP-0009waitingCourse player LP-0013waitingProgress tracking LP-0014waitingProduction readiness

Checks

Learning Platform · ajiya serve
Learning Platform
Overview
Next up3
Board
Dependencies
Phases3
Tickets9
Apps2
Checks3
Activity4
9 tickets · 2 apps

Checks

What ajiya check reports. Fix errors first.

1 error · 2 warnings · run ajiya check for the live list
LevelCodeWhereProblemFix
errorE002ajiya/course-catalog.md:9file is not in the form ajiya writes (edited by hand?)restore it with git checkout -- ajiya/course-catalog.md and make the change with ajiya commands
warningW010ajiya.toml2 open tickets in no milestone: LP-0011 LP-0012make a milestone's targets depend on them, or add a milestone for the later work
warningW007ajiya.tomlnothing required for launch mentions deployment or hostingadd a ticket for deployment or hosting that the launch target depends on
ajiya ticket done
$ ajiya ticket done LP-0008
✗ ticket done LP-0008: no commit since LP-0008 was started names it
next session · ready to continue
$ ajiya next
LP-0007  api  Add course catalog endpoint
         launch task · unblocks 2
$ ajiya ticket start LP-0007
■ LP-0007 in progress
$ git commit -m "Add course catalog endpoint" \
    -m "Ajiya: LP-0007"
✓ 1 ticket referenced
$ ajiya ticket done LP-0007 --test
✓ Done · 4f2a91c · tests passed
ajiya/course-catalog.mdajiya.toml
# Course catalog · phase
Goal: learners can find and enroll in a course

| ID      | App | Ticket               | Depends | Status    |
|---------|-----|----------------------|---------|-----------|
| LP-0007 | api | Course catalog API   | none    | ■ Done    |
| LP-0008 | api | Learner enrollment   | LP-0007 | ■ Started |
| LP-0009 | web | Course player        | LP-0008 | ■ Pending |
What changes

Hand off work without a restart.

Resume from the shared plan

The next session reads the tickets, status and dependencies. You do not rebuild the plan from an old chat.

See what is holding up launch

Ajiya shows blocked tickets and tickets that need a person.

Check completed work

Tickets link to commits. Add --test to require passing tests.

The loop

The same four steps each session.

See the full loop →
01
ajiya next

Pick a ticket that can start.

02
ajiya ticket start LP-0007

Start it. Ajiya tracks the work.

03
Ajiya: LP-0007

Commit with the Ajiya trailer.

04
ajiya ticket done LP-0007 --test

Close the ticket with commit evidence.

The rules

Check the evidence before you call work done.

All rules →
  • A ticket needs commit evidence. It closes only against a commit that names it.
  • Each commit names its tickets. A Git hook checks it, and CI checks again.
  • Agents change the plan through commands. ajiya check reports manual edits.
Get started

Review the plan before your agent starts work.

Install options and the existing project prompt →
Tell your agent
Set up Ajiya in this repository and plan: <what you want to build>. If the ajiya command is missing, install it with npm install -g @ajiya/cli (or the install script from https://github.com/AliyuYahaya/Ajiya). Then run ajiya init --yes and ajiya hook install, and follow .ajiya/guide/setup.md: ask me at most three questions, then hand over a summary. Don't start building until I say so.

Try Ajiya in your next agent session.

Then run ajiya init in your project. The docs cover Homebrew, the install script, Windows and other options.

npm install -g @ajiya/cli
Install options