jpmschweitzerandClaude Opus 4.8 4aed6c12a5 add search-and-replace across files
Builds on the find-in-files engine. A replace engine applies the
query's replacement to each matching file — literal or regex with
capture-group expansion ($1, $&, $$) — and reports per-file, per-line
before/after edits computed with the same logic the apply uses, so
preview and apply never disagree.

The search.replace command previews (no disk writes) or applies
(writing each changed file through the workspace path-safety guard).
The panel gains a Replace field: each match row previews its rewritten
line, and Replace all is gated on a clean git working tree (git is the
undo) plus a confirmation before it writes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 21:41:09 +02:00
2026-05-31 21:41:09 +02:00
2026-04-20 20:30:51 +02:00
2026-05-31 21:41:09 +02:00
2026-05-31 21:41:09 +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) 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%