|
29 | 29 | modify. The bet: one repo everyone can edit is the fastest way for all of us to |
30 | 30 | move. Add something useful, and everyone gets it. |
31 | 31 |
|
32 | | -A few things already here: |
33 | | - |
34 | | -- **Semantic code search** ([`search`](packages/search/search/)) that |
35 | | - finds code by meaning, not just exact strings. |
36 | | -- A [PTY driver](packages/tui/tui/) that lets code **drive any interactive terminal |
37 | | - program** (gdb, vim, REPLs) like a human typing into it. |
38 | | -- **Agent loops** and a Python [`mcp`](packages/mcp/) server that hands these |
39 | | - primitives to an LLM, no install step. |
40 | | -- Ready-to-run [OCI images](images/) and reusable [NixOS modules](modules/), the |
41 | | - layer [ix](https://ix.dev) publishes on top of its closed-source VM primitives. |
42 | | - |
43 | | -To explore, you could point Claude at this repo and ask whether anything here is |
44 | | -useful for you. |
45 | | - |
46 | | -The clip above is not a screen recording. It is generated by |
47 | | -[`reel`](packages/tui/reel/), which drives a real shell through the repo's own |
48 | | -[PTY driver](packages/tui/tui/), rasterizes the styled grid with a flat palette, and |
49 | | -encodes a 60fps animated AVIF (with a WebP fallback). AV1's inter-frame |
50 | | -compression keeps it around 140 KB. Regenerate it any time: |
51 | | - |
52 | | -```sh |
53 | | -nix run .#reel # writes docs/demo-{dark,light}.{avif,webp} |
54 | | -``` |
55 | | - |
56 | | -## Quick Check |
| 32 | +It is one Nix flake holding ~45 packages (mostly Rust, with Python, Elixir, |
| 33 | +TypeScript, and Svelte where they fit), a corpus of NixOS modules and OCI |
| 34 | +images, and the agent infrastructure that ties them together. Most packages have |
| 35 | +a from-source page under [`docs/`](docs/index.md). To explore, point Claude at |
| 36 | +this repo and ask whether anything here is useful for you. |
| 37 | + |
| 38 | +## What's inside |
| 39 | + |
| 40 | +### Agent infrastructure |
| 41 | + |
| 42 | +The harness, governance, and tuning loop that runs coding agents (Claude Code and |
| 43 | +Codex) across the fleet under one set of rules. The house system prompt is |
| 44 | +[`system-prompt.nix`](packages/agent/system-prompt.nix), an ordered set of named, |
| 45 | +reviewable bindings rather than a text blob, so behavior changes land as PR diffs. |
| 46 | + |
| 47 | +| Package | What it does | |
| 48 | +| --- | --- | |
| 49 | +| [`claude-code`](packages/agent/claude-code/) / [`codex`](packages/agent/codex/) | Agent CLIs wrapped with the shared house prompt, MCP servers, and hooks baked in | |
| 50 | +| [`policy`](packages/agent/policy/) | One source of tool-access rules for both wrappers (deny force-merge, block superseded builtins) | |
| 51 | +| [`system-prompt-eval`](packages/agent/system-prompt-eval/) | Spawns sandboxed `claude -p` rollouts, scores them with an LLM judge, commits the scores | |
| 52 | +| [`claude-hooks`](docs/claude-hooks/overview.md) | Lifecycle hooks as one Rust binary; every hook fails open and silent, so a broken hook never blocks a session | |
| 53 | +| [`subagent-cache`](packages/agent/subagent-cache/) | Memoizes read-only investigations across the team, validated by Postgres recall + a Haiku judge + file-freshness hashing | |
| 54 | +| [`symphony`](packages/agent/symphony/) | Elixir/OTP runtime orchestrating multi-repo Codex sessions from a `.sym` DSL, each in its own git worktree | |
| 55 | +| [`distiller`](packages/agent/distiller/) | Turns raw session transcripts into searchable, reusable lessons | |
| 56 | +| [`pi-harnesses`](packages/agent/pi-harnesses/) | Fixed agent postures: sandboxed engine, beam-search executor, skeptical prosecutor | |
| 57 | +| [`claude-stories`](packages/agent/claude-stories/) | A status-line row of teammate avatars, peer-discovered over Tailscale with no central server | |
| 58 | + |
| 59 | +### A Nix build system rebuilt for speed |
| 60 | + |
| 61 | +| Package | What it does | |
| 62 | +| --- | --- | |
| 63 | +| [`nix-cargo-unit`](packages/nix/nix-cargo-unit/) | Renders the Cargo workspace as one content-addressed derivation per rustc unit, not per crate | |
| 64 | +| [`snix`](packages/nix/snix/) | A Rust reimplementation of Nix, built here with cargo-unit (~1100 crate builds collapse into one incremental graph) | |
| 65 | +| [`nix-fast-build`](packages/nix/nix-fast-build/) + [`nix-eval-jobs`](packages/nix/nix-eval-jobs/) | Patched to correctly skip already-realized CA outputs (an ~85s cache-check floor for ~1450 units becomes ~0.1s) | |
| 66 | +| [`oci-image-builder`](packages/nix/oci-image-builder/) | Splits image "describe" from "materialize" and shards per-layer tarring, so rebuilds stay fast and deterministic | |
| 67 | +| [`nix-web-monitor`](packages/nix/nix-web-monitor/) | Streams Nix's internal JSON build log into a live browser dashboard while the build runs in your terminal | |
| 68 | +| [`blast-radius`](packages/blast-radius/) | Reports how many derivations a PR would rebuild, and why | |
| 69 | +| [`indexbench`](packages/indexbench/) | Gates macro-benchmark and allocation-count regressions in CI | |
| 70 | + |
| 71 | +### Code intelligence and search |
| 72 | + |
| 73 | +| Package | What it does | |
| 74 | +| --- | --- | |
| 75 | +| [`search`](packages/search/search/) | Semantic code search by meaning; content-addressed, so identical files across branches share one embedding | |
| 76 | +| [`astlog`](packages/code/astlog/) | Datalog over tree-sitter syntax trees (matches as relations, joins as rules); gates `nix run .#lint` | |
| 77 | +| [`scipql`](packages/code/scipql/) | The same idea over a SCIP semantic index, so a rename never touches an unrelated same-named symbol | |
| 78 | + |
| 79 | +### Terminal automation |
| 80 | + |
| 81 | +| Package | What it does | |
| 82 | +| --- | --- | |
| 83 | +| [`tui`](packages/tui/tui/) | A PTY driver: drive any interactive program (gdb, vim, REPLs) and read back a rendered screen, not raw escape codes. Python + Node bindings | |
| 84 | +| [`reel`](packages/tui/reel/) | Records a terminal demo through the PTY driver and encodes it to animated AVIF/WebP (see below) | |
| 85 | +| [`run`](packages/tui/run/) | Records a command under a terminal session, keeping agent logs small | |
| 86 | +| [`dashboard`](packages/dashboard/) | A live grid of running terminals in the browser over a Loro CRDT and SSE | |
| 87 | + |
| 88 | +The demo at the top of this README is not a screen recording. [`reel`](packages/tui/reel/) |
| 89 | +drives a real shell through the PTY driver, rasterizes the styled grid with a flat |
| 90 | +palette and an embedded monospace face, and encodes a 60fps animated AVIF (WebP |
| 91 | +fallback). AV1's inter-frame compression keeps it around 140 KB. Regenerate it any |
| 92 | +time with `nix run .#reel`. |
| 93 | + |
| 94 | +### Agent-facing primitives |
| 95 | + |
| 96 | +A Python [`mcp`](packages/mcp/) server hands all of the above to an LLM with no |
| 97 | +install step. Its one general `python_exec` tool runs on a single shared, |
| 98 | +persistent IPython kernel: namespace persists across calls, work can background |
| 99 | +past the foreground budget, and sessions checkpoint to disk. Bundled modules |
| 100 | +expose search, the PTY driver, a `fleet` cluster API (Ray, Spark, SSH fan-out to |
| 101 | +Polars frames), browser and screen control, and cloud integrations. |
| 102 | + |
| 103 | +### VMs, images, and fleet |
| 104 | + |
| 105 | +The layer [ix](https://ix.dev) publishes on top of its closed-source VM primitives: |
| 106 | +ready-to-run [OCI images](images/) and reusable, auto-discovered [NixOS modules](modules/). |
| 107 | + |
| 108 | +| Package | What it does | |
| 109 | +| --- | --- | |
| 110 | +| [`vmkit`](packages/vm/vmkit/) | Spawns guests on macOS Virtualization.framework or Linux libkrun from one binary | |
| 111 | +| [`chrome-vm`](packages/vm/chrome-vm/) | Runs headless Chromium inside a real VM | |
| 112 | +| [`ix-fleet`](packages/ix-fleet/) | Drives declarative multi-VM rollouts | |
| 113 | +| [`dag-runner`](packages/dag-runner/) | Executes JSON task DAGs for parallel health checks | |
| 114 | + |
| 115 | +## Quick check |
57 | 116 |
|
58 | 117 | ```sh |
59 | 118 | nix flake show # list every package, module, and check |
60 | 119 | nix run .#lint # nixfmt, statix, deadnix, astlog (nix + rust) |
61 | 120 | nix build .#minecraft # realize one image closure |
| 121 | +nix run .#reel # regenerate the demo above |
62 | 122 | ``` |
63 | 123 |
|
64 | 124 | ## Layout |
65 | 125 |
|
66 | | -- [`packages/`](packages/) repo-owned tools (search, PTY driver, agent loops, MCP server, the `reel` demo recorder). |
67 | | -- [`images/`](images/) runnable NixOS systems packaged as OCI archives. |
68 | | -- [`modules/`](modules/) opt-in NixOS service modules, auto-discovered. |
69 | | -- [`lib/`](lib/) shared helper and builder API. |
70 | | -- [`examples/`](examples/) standalone consumer fleets. |
71 | | -- [`skills/`](skills/) Claude Code skills, auto-discovered and shipped to agents. |
| 126 | +| Path | Contents | |
| 127 | +| --- | --- | |
| 128 | +| [`packages/`](packages/) | Repo-owned tools: agent stack, Nix build system, search, PTY driver, MCP server, `reel` | |
| 129 | +| [`images/`](images/) | Runnable NixOS systems packaged as OCI archives | |
| 130 | +| [`modules/`](modules/) | Opt-in NixOS service modules and profiles, auto-discovered | |
| 131 | +| [`lib/`](lib/) | Shared helper and builder API (Rust workspace graph, `buildUvApplication`, Minecraft/NBT, agent integration) | |
| 132 | +| [`docs/`](docs/index.md) | From-source documentation, one page per package | |
| 133 | +| [`examples/`](examples/) | Standalone consumer fleets | |
| 134 | +| [`skills/`](skills/) + [`agents/`](agents/) | Claude Code skills and subagent definitions, shipped to agents | |
| 135 | +| [`rfcs/`](rfcs/) | Architecture decision records | |
72 | 136 |
|
73 | 137 | ## Feedback |
74 | 138 |
|
75 | 139 | Bug reports and enhancement requests go to [GitHub Issues](https://github.com/indexable-inc/index/issues). Security reports follow [SECURITY.md](SECURITY.md). Code changes land through pull requests against the `main` branch; see [CONTRIBUTING.md](CONTRIBUTING.md) for local setup, coding standards, and commit conventions. |
76 | 140 |
|
77 | | -## Contributor Notes |
| 141 | +## Contributor notes |
78 | 142 |
|
79 | 143 | See [AGENTS.md](AGENTS.md) and [CONTRIBUTING.md](CONTRIBUTING.md) when you're ready to dig in. |
0 commit comments