jpmschweitzerandClaude 76c1d24904
test / unit + widget + golden + a11y (push) Failing after 27s
test / integration_test (xvfb) (push) Has been skipped
test / bundle smoke (xvfb 5s) (push) Has been skipped
test / daemon subprocess + web WASM smoke (push) Has been skipped
test / dart doc (lib API) (push) Failing after 27s
render the Claude pane natively from the transcript (T-137)
The Phase-1 wedge of epic T-132 (D-75): the Claude pane no longer
renders the PTY's TUI. It runs claude in tmux as before (so the
transcript is written) but displays the conversation as native cards
read from the transcript via TranscriptReader — user / assistant
markdown / thinking / tool-use / tool-result. The whole list sits under
a new no-Material ClideSelectionArea (SelectableRegion-based, since
Flutter's SelectionArea is Material and D-7 bans it), so text selects
and copies across cards — recovering the terminal's one real advantage.

ClaudePane drops its Terminal model and the resize-driven spawn trigger
(spawn now fires once on didChangeDependencies with a fixed tmux size,
since the TUI isn't shown); pane.output is no longer consumed. The
terminal builtin is untouched and still available as a general tool.
Input/composer is the next ticket (T-138).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-05-22 20:12:30 +02:00
2026-04-20 20:30:51 +02:00
2026-04-23 00:37:20 +02:00

clide

An IDE for Claude Code CLI. Native rendering, terminal-first interaction, pql-powered queries, canvas and graph surfaces. Linux and macOS.

Architecture

Single Flutter package at the repo root. The app hosts everything in-process: IPC server, subsystem handlers (pane, files, editor, git, pql), and the extension framework. tmux owns Claude session persistence (D-41).

  • lib/ — all Dart code. Core subsystems (lib/src/), kernel services (lib/kernel/), UI widgets (lib/widgets/), built-in extensions (lib/builtin/), the extension framework (lib/extension/).
  • PTYlib/src/pty/ spawns child processes via Dart FFI posix_openpt() + posix_spawn() directly; no external helper binary.
  • native/ — vendored native libraries (libtree-sitter.so with wasmtime embedded). Linux only today.
  • pql — external supporter tool. Clide wraps it for every query surface; never re-implements it.

Claude drives the UI through a clide CLI surface (Bash, not MCP). Every CLI subcommand has a UI affordance and every UI action has a CLI equivalent (D-6).

Built-in extensions

canvas, claude, claude_control, decisions, diff, editor, extensions_ui, files, git, graph, grammars_core, ipc_status, keybindings_ui, markdown, pql, problems, settings_ui, terminal, theme_picker, tickets, todos, welcome.

Building

Requires Flutter (stable channel) on the host. One-time setup:

make hooks && flutter pub get

Then:

make run              # launch the desktop app
make test             # fast suite: analyze + format + unit + widget + golden
make test-core        # core subsystem tests (IPC, PTY, git, pane registry)
make test-a11y        # accessibility contract tests
make test-integration # real app boot integration tests
make build-linux      # flutter build linux
make build-macos      # flutter build macos
make push-check       # pre-push gate: decisions + core + fast + a11y + coverage + changelog

Status

Pre-v2.0 (2.0.0-dev). Interaction model and panel system landed. The Python Textual v1.2.0 predecessor is archived under legacy/.

Documentation

  • docs/architecture.md — current architecture (read this first).
  • CONTRIBUTING.md — how to clone, build, test, file tickets, and write D-records.
  • docs/initial-plan.md — historical design doc; preserved as a snapshot of the 2026-04 plan, much of it now superseded.
  • governance/decisions/ — confirmed decisions (D-NNN), open questions (Q-NNN), rejected alternatives (R-NNN).
  • CLAUDE.md — Claude-addressed working notes (guardrails, repo layout).

License

MIT. See LICENSE.

S
Description
CLI Claude
Readme MIT
32 MiB
Languages
Dart 86.3%
Python 8.2%
Tree-sitter Query 1.7%
Shell 0.8%
C 0.6%
Other 2.2%