DOCUMENTATION / Agents
Agents & detection
Which agents modisa knows, the states it tracks, and how it reads them.
24 agents, no setup
Modisa recognises these by their process, including when they're started through node, bun, python or a shell script:
- Claude Code
claude - Codex
codex - Gemini CLI
gemini - Cursor Agent
cursor-agent - Copilot CLI
copilot - OpenCode
opencode - Pi
pi - OMP
omp - Droid
droid - Amp
amp - Kiro CLI
kiro-cli - Kimi Code
kimi - Kilo Code
kilo - Devin CLI
devin - Grok CLI
grok - Hermes Agent
hermes - Qoder CLI
qodercli - Qwen Code
qwen - Antigravity CLI
agy - Cline
cline - MastraCode
mastracode - Maki
maki - Muse
muse - Aider
aider
States
| State | Meaning | |
|---|---|---|
| ! | needs you | A dialog, question or permission prompt is waiting on you. |
| ◆ | working | The agent is busy. |
| ✓ | done | It finished while you weren't looking. Focusing it clears it. |
| ○ | idle | Waiting for a prompt. |
State shows in the pane border, the tab bar and the sidebar. The status row counts who's working and who needs you; clicking either lists just those agents.
How it reads state
Each agent has a manifest of rules over the live bottom of its screen, its terminal title (Claude, for one, animates a spinner there while it works) and its OSC 9;4 progress. Rules have priorities, regions (the last N lines, the prompt box, the text after the last horizontal rule, …) and nested all / any / not conditions. A screen that looks idle only mid-animation waits one more look before it counts.
Integrations can add more — see Integrations.
Add or tune an agent
A TOML file in ~/.config/modisa/adapters/<id>.toml adds an agent or overrides a built-in one:
name = "My Agent"
process = ["my-agent"]
launch = "my-agent"
resume = "my-agent --continue"
resumeSession = "my-agent --resume {id}"
[[rules]]
id = "approval"
state = "blocked"
priority = 900
region = "bottom_non_empty_lines(6)"
contains = ["allow this command?"]
[[rules]]
id = "busy"
state = "working"
priority = 500
region = "bottom_non_empty_lines(3)"
regex = ['(?i)esc to interrupt']modisa debug detect <pane> shows which rule matched, whether an integration is reporting, and the title and progress it saw.