jpmschweitzerandClaude Opus 4.8 bcb57bc75f ship the Vim keymap preset
T-65 — the capstone of the Vim epic. assets/keymaps/vim.yaml binds the
muscle-memory set guarded on vim.normal/insert/visual: hjkl/w/b/e/0/$/^/
gg/G motions, x/dd/dw/D/yy/p/P/cc/cw edits, i/a/I/A/o/O insert entries,
v + d/y/c in visual, Esc back to normal, and counts via the matcher. App
shortcuts (palette, find, zoom) are carried in the preset so they survive
under Vim.

The editor now feeds Shift chords to the matcher (Vim's capitals: G, D,
A, P, $) while still bubbling Ctrl/Alt/Meta to the global handler. The
keybindings-ui stub gains palette commands (`Keymap: Vim` / `Keymap:
Default`) to switch presets — the user-facing way to turn Vim on.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 21:32:40 +02:00
2026-06-01 21:32:40 +02:00
2026-06-01 21:32:40 +02:00
2026-04-20 20:30:51 +02:00
2026-06-01 21:32:40 +02:00
2026-06-01 21:32:40 +02:00
2026-04-23 00:37:20 +02:00
2026-06-01 21:32:40 +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) and pql on the host. pql is a hard dependency — the pre-push gate runs pql decisions validate and the governance + ticket workflow is built on it (see its repo for install). One-time setup:

make hooks && flutter pub get
pql init                 # once, in the repo root — wires up the pql skill + perms

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%