project.yaml is fresh and declares version 2.0.0-dev — a clean break from Python clide's v1.2.0 (which remains under legacy/). It carries module path, toolchain pins (go >=1.25, Flutter stable, Dart >=3.5), and the Gitea repository URL. Same schema as the Makefile will read via awk for sidecar version stamping. README.md and LICENSE land alongside. The README pitches the rebuild tersely and points at docs/initial-plan.md for the full story; the Python README is preserved under legacy/README.md. .gitignore is rewritten for the new toolchain. The previous file was wall-to-wall Python rules; now the root ignores Flutter/Dart/Go build output plus the usual OS/editor/secrets/.claude-local entries, and Python-specific rules scope to legacy/** so they don't fire on any stray caches at the repo root. .editorconfig sets tabs for Go, two-space for Dart and everything else, and the usual EOL + trailing-whitespace rules. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
26 lines
1.8 KiB
Markdown
26 lines
1.8 KiB
Markdown
# clide
|
|
|
|
A Flutter desktop IDE for Claude Code. Markdown-first content, pql-powered queries, canvas and graph surfaces, a Go sidecar handling PTYs / subprocesses / git / pql. Claude drives the UI through a `clide` CLI.
|
|
|
|
Currently pre-v2.0, scaffolding. The north-star design lives in [`docs/initial-plan.md`](docs/initial-plan.md); architectural decisions are captured in [`docs/ADRs/`](docs/ADRs/). The Python Textual v1.2.0 implementation is archived under [`legacy/`](legacy/) for reference.
|
|
|
|
## Three surfaces, one tool
|
|
|
|
- **`app/`** — Flutter desktop application (Linux / macOS; Windows is a stretch).
|
|
- **`sidecar/`** — Go sidecar/CLI, single binary with two modes: `clide <subcommand>` (one-shot for Claude) and `clide --daemon` (long-running sidecar for the app). Owns PTYs, subprocesses, file watchers, git, pql invocations.
|
|
- **[`pql`](https://github.com/postmeridiem/pql)** — external supporter tool. clide wraps it for every query surface; never re-implements it.
|
|
|
|
## Why the rebuild?
|
|
|
|
The Python Textual implementation (`legacy/`) proved the pane model but capped at terminal-only rendering. A short-lived experiment (`claudian`, April 2026) explored an Obsidian-plugin approach and was abandoned because Obsidian is Electron, and the user's history with terminal-in-Electron ruled that host out.
|
|
|
|
Flutter desktop resolves both constraints: native Skia rendering avoids Electron's failure modes, `xterm.dart` gives us a solid terminal surface, and the pane model can be rebuilt natively. The Obsidian ideas worth keeping (canvas, graph) fold in; everything else (vault concept, inline query tables, plugin ecosystem inheritance) doesn't.
|
|
|
|
## Status
|
|
|
|
No build yet beyond the repo scaffold. Tier 0 acceptance: sidecar daemon runs, Flutter app connects, empty IDE shell appears with placeholders.
|
|
|
|
## License
|
|
|
|
MIT. See [`LICENSE`](LICENSE).
|