Content
<p align="center">
<img src="installation0.jpg" width="100%" alt="INSTALLATION0 — local AI toolkit for Claude Code & GitHub Copilot">
</p>
# INSTALLATION0
**The root repository for a local-AI toolkit** — a suite of modules for Claude
Code and GitHub Copilot, installed as one and unified by a single shared server
instance.
INSTALLATION0 is the home for all of these tools. One `node install.js` sets up a
set of modules that plug into Claude Code and Copilot:
| Module | What it is |
|---|---|
| **bridge** | the flagship — Copilot Chat → local `claude` (BYOM). Detailed below. |
| **engram** | cross-project agent memory + reference dictionary (MCP) |
| **code-memory** | graph + full-text index of your codebase (MCP) |
| **filesystem** (`fsp`) | token-cheap filesystem proxy (CLI + `Bash` hook) |
| **local-subagent** | orchestrate local-LLM subagents from Claude (MCP) |
They're tied together by a **primary shared server instance** — the `server`
module — the always-on backbone that owns cross-module **analytics, telemetry,
and the data spine**: a DuckDB events store plus per-bridge SQLite drill-downs,
unified under one CLI / HTTP / MCP surface. Everything the modules do reports
into this one place.
Everything runs **on your machine**. No cloud egress beyond the model calls you
already make.
---
## Install
```sh
git clone https://github.com/Installation-0/installation0.git
cd installation0
node install.js
```
Or one line — checks git/Node, clones, then runs the installer:
```sh
curl -fsSL https://raw.githubusercontent.com/Installation-0/installation0/main/bootstrap.sh | bash
```
`node install.js` stands up the bridge as an HTTP service on `127.0.0.1:8400`
and registers the supporting MCP servers. Then add it to VS Code as a BYOM
endpoint and pick **installation-0** in the Copilot Chat model dropdown. Flags:
`--lan`, `--autostart`, `--hooks`, `--only=a,b`. Full BYOM wiring, requirements,
autostart, and uninstall are in **[INSTALL.md](INSTALL.md)**.
> After install, fully quit and reopen VS Code / Claude Code so it reloads
> `~/.claude.json`, then `/mcp` to confirm the servers are live.
---
## The bridge — Copilot → local `claude`
> **An agnostic VS Code Copilot Chat ↔ Claude Code bridge.**
> Use Copilot Chat — its UI, its native tools, its approvals — powered by
> **Claude Code**, through a Bring-Your-Own-Model server bridge to your local
> **subscription** `claude`. No API key, no per-token cost.
Point GitHub Copilot Chat at `installation-0` in the model picker and every
message you send is answered by the local `claude` CLI you already pay for —
streaming back into Copilot's own chat panel, calling Copilot's own tools, under
Copilot's own approvals. The bridge is invisible; only the engine changes.
<p align="center">
<img src="byom.png" width="420" alt="GitHub Copilot Chat with installation-0 selected as the model">
</p>
<p align="center"><sub><i>Select <b>installation-0</b> as the model — Copilot Chat is now driving Claude Code.</i></sub></p>
Because it speaks the plain OpenAI chat API, it's **agnostic** — Copilot Chat
drives it here, but any OpenAI-compatible client can.
Added through VS Code's **Manage Models** flow as a local BYOM endpoint, it runs
with **no Copilot plan and no GitHub sign-in** — local models are free in VS
Code. Only Copilot-service features (semantic search, inline suggestions,
embeddings) still need a plan; chat and agent mode with `installation-0` do not.
[(VS Code docs.)](https://code.visualstudio.com/docs/agent-customization/language-models#_frequently-asked-questions)
| Capability | What you get |
|---|---|
| **BYOM model** | `installation-0` appears in Copilot's model picker → routes to local `claude` |
| **No cost** | your **subscription** CLI — no API key, no per-token billing, and as a local BYOM endpoint it needs **no Copilot plan and no GitHub sign-in** |
| **Native tools, both ways** | claude calls VS Code's own edit / terminal / diagnostics / search tools |
| **Streaming** | real-time tokens *and* tool-call deltas inside Copilot Chat |
| **Persistent sessions** | one resumable `claude` session per conversation — context survives every turn |
| **`/model`** | switch `opus` / `sonnet` / `haiku` (or a full `claude-…` id) mid-chat |
| **`/effort`** | `low` → `max` reasoning effort on demand |
| **`/perms`** | `bypass` / `acceptEdits` / `plan` / `default` permission mode |
| **`/compact`** | compact now — plus an automatic compaction governor |
| **Local & private** | loopback by default; `--lan` to share, `--autostart` to run as an OS service |
### Copilot Chat, Claude Code engine
You keep everything you like about Copilot Chat — the panel, agent mode,
checkpoints, the approvals UI — and swap the brain underneath for Claude Code.
The bridge keeps **one persistent `claude` stream-json session per
conversation**, resumed across turns by a conversation fingerprint, so context
and session state persist instead of starting cold on every message.
### Native VS Code tools, in both directions
claude doesn't just talk — it **acts in your editor**. Through an MCP proxy, a
claude tool call becomes an OpenAI `tool_calls` delta that Copilot executes with
its *own* native tools (edit files, run the terminal, read diagnostics, list
changed files, manage the todo list, search the workspace) under its own
approval flow — and the result streams back to claude.
<p align="center">
<img src="vscode_tools.png" width="300" alt="VS Code tools claude can call through the bridge">
</p>
<p align="center"><sub><i>The VS Code tools claude can invoke through the bridge.</i></sub></p>
### Drive claude from the chat box
Copilot Chat has no UI for reasoning effort, model, or permissions — so the
bridge intercepts a small command vocabulary and answers inline. Each one
restarts the session **with your context preserved**, so nothing is lost:
| Command | Does |
|---|---|
| `/model <opus\|sonnet\|haiku>` | switch claude's model (or a full `claude-…` id) |
| `/effort <low\|medium\|high\|xhigh\|max>` | set reasoning effort |
| `/perms <bypass\|acceptEdits\|plan\|default>` | set permission mode |
| `/compact` | compact this conversation now |
| `/help` | list the commands |
<p align="center">
<img src="effort_support.png" width="760" alt="/effort command handled by the bridge"><br>
<img src="model_selection.png" width="760" alt="/model command handled by the bridge">
</p>
<p align="center"><sub><i><code>/effort</code> and <code>/model</code>, handled inline without leaving Copilot Chat.</i></sub></p>
### Never hit the wall
A **compaction governor** watches the context window: it warns as the window
fills, and at the wall it halts new input, **queues** your messages, compacts the
conversation, and **resumes automatically** — so a long session continues instead
of dead-ending.
### Permissions & approvals
`/perms` threads the permission mode straight to claude — `bypass` for
hands-free, `plan` for read-only, `acceptEdits` to auto-accept edits while gating
shell commands. The Copilot tools claude calls run under **Copilot's own
auto-approve**, so you control the editor side from the UI you already use.
### Local, private, always-on
The bridge binds to `127.0.0.1:8400` by default. `--lan` exposes it on a network
you trust; `--autostart` installs it as an OS service (launchd / systemd) that
survives reboots. No cloud egress beyond the `claude` calls you already make.
Full reference: **[bridge/README.md](bridge/README.md)**.
---
## The rest of the suite
The bridge is the headline, but the modules it ships alongside are what make the
**local AI nexus** — Claude Code and the bridge draw on all of them:
- **engram** — cross-project **agent memory** + reference dictionary, graph-connected (SurrealDB). MCP server + skill.
- **code-memory** — a **graph + full-text index of your codebase**: symbol lookup, call-path tracing, impact analysis, architecture overviews, LSP pass-through. MCP server + skill.
- **filesystem** (`fsp`) — a **token-cheap filesystem proxy**: file ops go through a `Bash` hook so raw bytes stay off the agent's context window.
- **local-subagent** — orchestrate many **local-LLM subagents** (LM Studio / any OpenAI-compatible endpoint) from Claude — text-only workers, zero cloud egress. MCP server + skill.
- **server** — the **shared analytics & data spine** introduced up top: the DuckDB + SQLite backbone every module reports into. Query it to see what your agents have been doing. See **[server/README.md](server/README.md)**.
---
## Requirements
- **Node ≥ 20**
- **pnpm** — `npm i -g pnpm`
- **A C toolchain** (cc/clang + make) — some components compile native modules
(better-sqlite3, lmdb) on install. macOS: `xcode-select --install`;
Debian/Ubuntu: `apt install build-essential`.
The installer hard-checks all three up front and stops with a fix if any are
missing.
## Security
Defaults are safe: the bridge binds to **loopback (`127.0.0.1`)** with local-AI
features **off**. Its admin/mutation endpoints have **no auth** — only expose it
on a LAN (`--lan`) on a network you trust. See **[SECURITY.md](SECURITY.md)**.
## Uninstall
```sh
node install.js --uninstall # reverse the registration (MCP servers, hooks, config)
node uninstall.js # the above + remove node_modules / pnpm artifacts (keeps your data)
```
## License
[PolyForm Noncommercial 1.0.0](LICENSE) — source-available, **free for any
noncommercial use** (personal, research, education, non-profit). Commercial use
is not granted, and the copyright/attribution notice must be preserved. For a
commercial license, contact the author.
Connection Info
You Might Also Like
everything-claude-code
Complete Claude Code configuration collection - agents, skills, hooks,...
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
cc-switch
All-in-One Assistant for Claude Code, Codex & Gemini CLI across platforms.
servers
Model Context Protocol Servers
servers
Model Context Protocol Servers
Time
A Model Context Protocol server for time and timezone conversions.