|
| 1 | +# Nori CLI ACP Roadmap |
| 2 | + |
| 3 | +This roadmap is about Nori's ACP client work, not ACP in the abstract. The goal is to keep the client simple, fast, and predictable while we fill in the highest-value protocol features. |
| 4 | + |
| 5 | +> [!NOTE] |
| 6 | +> Read this document in two passes: start with the product roadmap for what Nori users and maintainers should expect, then use the ACP feature appendix for protocol status and coverage detail. |
| 7 | +
|
| 8 | +## Product Roadmap |
| 9 | + |
| 10 | +Status key: `✅ done` working well, `🔵 now` current focus, `🟡 next` near-term, `⚪ later` planned but not near-term. |
| 11 | + |
| 12 | +At a high level: |
| 13 | + |
| 14 | +```text |
| 15 | +done now next later |
| 16 | + ●─────────────────────────────●────────────────────────────●────────────────────────────●──────────────→ |
| 17 | +core loop session forking session config agent auth |
| 18 | +local agent registry images/resources official agent registry multi-session |
| 19 | +session lifecycle message queue unstable ACP |
| 20 | +``` |
| 21 | + |
| 22 | +| Product area | Status | User value | Next work | Maintainer note | |
| 23 | +| --------------------- | ---------- | ---------------------------------- | -------------------------------------------------------------- | ----------------------------------------------------------------------- | |
| 24 | +| File attachments | `✅ done` | users can reference code and docs | keep `@` path reference behavior stable | agents read referenced paths through ACP filesystem requests | |
| 25 | +| Local agent registry | `✅ done` | custom agents can be registered | keep local config registration simple | ACP Registry should complement this, not replace it yet | |
| 26 | +| Session lifecycle | `✅ done` | navigate previous sessions | keep behavior stable while forking work continues | `load`, `list`, `resume`, lazy indexing, and `undo` are already working | |
| 27 | +| Session continuity | `✅ done` | users can continue prior work | keep resume listing, speed, and metadata stable | context/usage metadata and `session_info_update` are finished | |
| 28 | +| Session forking | `🔵 now` | sessions can branch and form trees | finish `fork` and tree-oriented flows | keep native ACP behavior ahead of local stand-ins | |
| 29 | +| Image attachments | `🔵 now` | users can send visual context | capability-aware image routing and transcript fidelity | images reach ACP, but the path needs polish | |
| 30 | +| Queued messages | `🔵 now` | users can keep typing during work | finish backend handling for queued turns | TUI support exists, but ACP backend behavior needs tightening | |
| 31 | +| Session configuration | `🟡 next` | agents can expose useful controls | custom options like thinking/effort level and plan/build modes | keep this driven by agent-provided config, not hardcoding | |
| 32 | +| Agent discovery | `🟡 next` | custom agents are easier to find | support the official ACP Registry | local config registration already works | |
| 33 | +| Agent-driven auth | `⚪ later` | agents can own login/logout flows | auth methods and `logout` | wait until lifecycle, config, and registry are settled | |
| 34 | +| Multi-session UX | `⚪ later` | users can move across active work | multi-session support and navigation | keep this separate from single-session lifecycle cleanup | |
| 35 | +| Steering messages | `⚪ later` | users can redirect an active turn | wait for ACP support, then design Nori behavior | unsupported by ACP today | |
| 36 | +| Subagent UX | `⚪ later` | group subagent updates | wait for ACP support, then design Nori behavior | unsupported by ACP today | |
| 37 | +| Experimental ACP | `⚪ later` | adopt new protocol ideas carefully | elicitation, NES, `session/delete`, provider endpoint work | do not let draft features complicate the core client | |
| 38 | + |
| 39 | +## ACP Feature Appendix |
| 40 | + |
| 41 | +This table keeps the roadmap grounded in the current ACP spec and draft surface. It is dependency-facing detail, not the main structure of the project roadmap. |
| 42 | + |
| 43 | +| Product area | ACP feature | ACP status | Nori status | |
| 44 | +| --------------------- | --------------------------------------------- | ---------------------------- | --------------------- | |
| 45 | +| Session lifecycle | `session/load` | stable baseline | done | |
| 46 | +| Session lifecycle | `session/list` | stable | done | |
| 47 | +| Session lifecycle | `session/resume` | unstable landed | done | |
| 48 | +| Session lifecycle | `session/fork` | unstable landed | todo | |
| 49 | +| Session lifecycle | `session/close` | unstable landed | handled | |
| 50 | +| Session lifecycle | `session/delete` | draft only | not planned near term | |
| 51 | +| Session lifecycle | undo, rewind, checkpoints | not first-class ACP today | local only | |
| 52 | +| Session metadata | `session_info_update`, context/usage metadata | stable + unstable landed | done | |
| 53 | +| Session metadata | `messageId` and `userMessageId` | unstable landed | partial | |
| 54 | +| Turn control | queued messages | client behavior | in progress | |
| 55 | +| Turn control | steering messages | ACP draft | later | |
| 56 | +| Workspace | `additionalDirectories` | unstable landed | partial | |
| 57 | +| File attachments | `@` path references + `readTextFile` | ACP filesystem capability | done | |
| 58 | +| File attachments | `ResourceLink` / embedded `Resource` context | baseline + `embeddedContext` | todo | |
| 59 | +| Image attachments | image content blocks | prompt capability | partial | |
| 60 | +| Configuration | session config options | stable | near term | |
| 61 | +| Configuration | boolean config options | unstable landed | near term | |
| 62 | +| Discovery | ACP Registry | stable | near term | |
| 63 | +| Auth | auth methods | unstable landed | planned | |
| 64 | +| Auth | `logout` | unstable landed | planned | |
| 65 | +| Experimental protocol | elicitation | unstable landed | later | |
| 66 | +| Experimental protocol | NES | unstable landed | later | |
| 67 | +| Experimental protocol | custom provider endpoints | draft only | not planned near term | |
| 68 | +| Experimental protocol | diff-delete metadata | draft only | not planned near term | |
| 69 | +| Experimental protocol | proxy-chains | draft only | not planned near term | |
| 70 | +| Experimental protocol | subagents | not first-class ACP today | not planned near term | |
| 71 | + |
| 72 | +## Notes |
| 73 | + |
| 74 | +- This reflects our current understanding as of April 2026. |
| 75 | +- "Done" means done enough for initial usage within Nori, not necessarily that every implementation detail is perfect. |
| 76 | +- We will keep preferring fewer special cases and more native ACP behavior as we iterate. |
0 commit comments