Skip to content

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_llm seam.
  • ExecutionEnv abstraction for filesystem + shell.
  • parent_id session 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-memory reference 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_message per-CustomMessage-kind hook.
  • Frontend Protocol tightening.
  • /plugins inventory 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, /help formatting, 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-plugin drive 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, letscode once 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.