Roadmap¶
The roadmap drifts. Each milestone's headline shifts based on what the previous milestone's test-drive surfaced as friction. The constants are the working agreements.
Shipped¶
v0.1.0 — 2026-05-09 — Vertical slice¶
OpenAI client + agent loop + 4 built-in tools (read, write, edit, bash) + basic terminal frontend + JSONL sessions + skill loader + pluggy plugin system. Targets OpenAI, Ollama, OpenRouter — also works with Fireworks, anything OpenAI-compatible.
v0.2.0 — 2026-05-12 — Substance¶
Drifted from "Polish" to ship five strategic capability gaps:
- Two-tier message model with
convert_to_llmseam. ExecutionEnvabstraction for filesystem + shell.parent_idsession data model (tree-shaped, linear UX).- Compaction primitives (
CompactionPolicy,should_compact,compact,/compact [bias]). - Steering + follow-up queues.
Plus TOML config, /steer, /follow-up, /queue, /compact, /verbose, /footer.
v0.3.0 — 2026-05-13 — Extension model + ergonomics¶
Drifted from "Advanced TUI plugin" to ship two parallel trees:
- Extension model design doc — five extension types, ten-hook inventory, stable-import contract, semver rule.
letscode-memoryreference plugin — validates the design doc end-to-end.- Plugin authoring guide refresh — covers the new sections (
system_prompt,render_custom_message, stable surface, versioning, optional deps, trust model). - Skill-to-tool synthesis (every skill is also a
skill_<name>tool). letscode_render_custom_messageper-CustomMessage-kind hook.FrontendProtocol tightening./pluginsinventory command.
- Ergonomics punch list with 22 items found by static audit + Fireworks smoke runs.
- First sprint — 8 papercut fixes (skill-shadow silence, empty-turn suppression, bash trailing blank, persistent history, tab completion, welcome banner,
/helpformatting, footer label). - Second cluster — 6 medium fixes (Read panel syntax highlighting, prompt-input ergonomics, Fireworks model pricing).
- Ctrl+C actually aborts (three-commit fix).
- stdin echo silenced during agent calls.
- Markdown rendering of assistant text.
- Read panel suppression in default mode.
The basic frontend no longer makes you wince.
v0.4.0 — 2026-05-19 — Plugin & integration¶
Drifted from "Advanced TUI" to prove the plugin contract a second time and open integration:
- External Textual frontend plugin (
letscode-textual) — the contract holds for an out-of-tree frontend. - RPC mode (
letscode --mode rpc) — NDJSON over stdio for host/IDE integration. - Tree sessions (
/tree,/fork,/clone);/reload; memory recall +/forget; config sections. - Streaming-time input, redesigned across three real-terminal test-drives to interrupt-and-redirect (the advisory-queue design shipped, was driven, and was scrapped as unusable).
v0.5.0 — 2026-05-19 — Distribution & usability¶
Make it installable and survivable on first contact, not new capability:
--version,--init(config scaffold), an actionable no-key message, cache-hit footer.- CLI migrated typer/click → cyclopts (fixes trailing-option-after-prompt for free).
- Release-readiness gates:
make verify-dist/verify-plugindrive the built wheel from a clean env. - Not published to PyPI — the name is reserved; publishing is a held maintainer decision.
Next¶
v0.6 — Candidate¶
The recorded headline candidate (see notes/18): MCP — a letscode-mcp plugin exposing MCP servers as tool sources (capability, plugin-shaped, the strongest external pull). Deferred from v0.5 because v0.5 was distribution, not capability.
Deferred with explicit unblock conditions (none currently met):
- Web UI — RPC mode is the seam; a first-party web frontend waits on explicit demand.
letscode-trace/ model tiering — observability/cost; demand-gated, no signal yet.- Textual parity (T69/T70) — frontend is parked; revisit on a demand signal.
- Monorepo split into
letscode-llm,letscode-agent,letscodeonce external plugin contracts are proven. - Anything the community needs. Beyond the core is a plugin.
What we won't ship¶
The deliberate non-goals, carried forward from v0.2 and v0.3:
- Native Anthropic / Bedrock / Vertex provider modules (use OpenAI-compat shims)
- MCP support in core (a plugin can add it)
- Sub-agents in core (a plugin can add it)
- Permission popups (run in a container)
- Plan mode (write plans to files)
- Built-in to-dos (use
TODO.md) - Background bash (use tmux)
Rationale across the board: small core, everything else a plugin. See Related projects for how this compares to similar projects in the space.