Skip to content

Commit a0c3770

Browse files
authored
docs: Add ACP roadmap (#450)
## Summary 🤖 Generated with [Nori](https://www.npmjs.com/package/nori-ai-cli) - add a project-first ACP roadmap for Nori CLI - keep current work, near-term work, and future work easy to scan - include a compact ACP feature reference further down the document ## Test Plan - [x] Markdown formatting checked for `ROADMAP.md` - [ ] Other checks skipped per request (docs-only change) Share Nori with your team: https://www.npmjs.com/package/nori-skillsets
1 parent c39887e commit a0c3770

2 files changed

Lines changed: 85 additions & 9 deletions

File tree

README.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ Each provider you plan to use needs to be authenticated separately before use. T
3232
Currently each agent relies on an existing authenticated session on your system. If you're coming in from another CLI tool, great!
3333
You should be good to go. If not, first follow the authentication for your desired provider:
3434

35-
| Provider | Authentication |
36-
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
37-
| Claude | Run `npx @anthropic-ai/claude-code` in your terminal, then when the Claude CLI opens, type `/login` there. |
38-
| Gemini | Run `npx @google/gemini-cli` in your terminal, then when the Gemini CLI opens, type `/auth` there. |
39-
| OpenAI | In Nori, use `/agent` to switch to Codex, then run `/login` inside the Nori interface. Nori will prompt you to install OpenAI via npm if needed. |
35+
| Provider | Authentication |
36+
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
37+
| Claude | Run `npx @anthropic-ai/claude-code` in your terminal, then when the Claude CLI opens, type `/login` there. |
38+
| Gemini | Run `npx @google/gemini-cli` in your terminal, then when the Gemini CLI opens, type `/auth` there. |
39+
| OpenAI | In Nori, use `/agent` to switch to Codex, then run `/login` inside the Nori interface. Nori will prompt you to install OpenAI via npm if needed. |
4040

4141
## Bring Your Own Agent
4242

@@ -65,11 +65,11 @@ Then switch to your agent with `/agent` inside Nori.
6565

6666
**Example agents to try:**
6767

68-
| Agent | Install | Notes |
69-
|-------|---------|-------|
68+
| Agent | Install | Notes |
69+
| ------------------------------------------------------------------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------- |
7070
| [Mistral Vibe](https://docs.mistral.ai/mistral-vibe/introduction/install) | `curl -LsSf https://mistral.ai/vibe/install.sh \| bash` | Installs both `vibe` and `vibe-acp`. Run `vibe --setup` to configure your API key. |
71-
| [ElizACP](https://github.com/agentclientprotocol/symposium-acp) | `cargo install --locked elizacp` | Minimal Eliza chatbot, useful for testing. |
72-
| [Kimi](https://github.com/nicepkg/kimi-cli) | No install needed — uses `uvx` | First-time auth: run `uvx --python 3.13 kimi-cli`, then `/login`. |
71+
| [ElizACP](https://github.com/agentclientprotocol/symposium-acp) | `cargo install --locked elizacp` | Minimal Eliza chatbot, useful for testing. |
72+
| [Kimi](https://github.com/nicepkg/kimi-cli) | No install needed — uses `uvx` | First-time auth: run `uvx --python 3.13 kimi-cli`, then `/login`. |
7373

7474
Want your AI agent to configure this automatically? Point it at the raw skill file: https://github.com/tilework-tech/nori-cli/blob/main/.claude/skills/registering-custom-acp-agent/SKILL.md
7575

ROADMAP.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
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

Comments
 (0)