Discover MCPs & agents
Loading MCPs and agents…
Loading MCPs and agents…
local-first Agent Development Environment that unifies your CLI coding agents into a single application
From the repo.
Centauri is a local-first Agent Development Environment (ADE) that pairs conversational coding agents with a focused Git source-control workspace.
It gives you a clean side-by-side flow:
Centauri is designed to complement tools like Claude Code, Codex, Droid, pi, Mistral Vibe, OpenCode, Aider, Gemini CLI, and other terminal-first agents. It does not replace Git, your terminal, or your existing credentials — it wraps the local tools you already use in a tighter building loop.
Centauri does not replace a provider's coding harness with a Centauri agent. It launches the official CLI you installed and delegates model selection, system behavior, repository instructions, tools, permissions, and execution to that CLI. If you trust a particular model inside Codex, Claude Code, or another supported harness, Centauri lets you keep using that same model through the harness its developers designed for it.
There is no Centauri system prompt attempting to make the model code differently, no alternate tool implementation, and no model routing hidden behind the interface. Centauri is the workbench around the harness, not a competing layer inside it.
Streamline Chat is therefore not byte-for-byte identical to typing into the provider's TUI, but the model and native harness remain the provider's. Centauri aims to preserve harness performance instead of trying to out-prompt the people who built it.
Centauri is early and moving fast. The core local ADE loop is in place, but expect sharp edges while the product direction settles.
Streamline mode gives CLI coding agents a regular chat-style interface while still running the underlying harness on your machine in the opened repository.
You can enable Streamline mode in Settings. The traditional terminal mode remains available for tools or workflows that work best as a raw TUI.
node-pty and xterm.jsPATHSupported detection targets currently include:
claudecodexpidroidvibeopencodeaidergeminicursor-agentamphermesopenclaw.gitignoreCentauri also includes the original Git workbench capabilities:
Centauri runs on your machine and talks to local tools:
git executablegit, SSH, HTTPS, or gh credentialsgitOptional:
gh for a smoother GitHub authentication/setup flowInstall Centauri globally to make the centauri command available:
npm install --global @unmodeled-tyler/centauri
centauri
The scoped npm package intentionally installs the unscoped centauri executable. Use centauri --browser to open the UI in your browser instead of Electron, or centauri --help to see all launcher options.
Clone the repo and install dependencies:
git clone https://github.com/unmodeled-tyler/centauri.git
cd centauri
npm install
Run the app in development mode:
npm run dev
This starts the local API server, Vite frontend, and opens Centauri in its own Electron app window. On Linux, the dev launcher passes Electron --no-sandbox so local node_modules/electron works without configuring the SUID sandbox helper.
If you only want the API and Vite servers without launching the desktop window:
npm run dev:web
npm run build
npm start
Or use the CLI launcher after building:
npm run start:cli
Centauri can also be packaged as an unsigned universal macOS Electron app for both Apple Silicon and Intel Macs:
npm run build:mac
This writes a universal .dmg and .zip to release/. For a faster local packaging smoke test without creating installer artifacts:
npm run build:mac:dir
The packaged app starts its own local Centauri API server and serves the built UI from the app bundle. Because local builds are unsigned, macOS Gatekeeper may require opening the app from Finder with Open the first time.
npm run dev # start server + frontend and open Electron app window
npm run dev:web # start server + frontend only
npm run dev:server # start API server in watch mode
npm run dev:client # start Vite frontend
npm run dev:cli # alias for the desktop dev launcher
npm run build # build frontend and backend
npm run build:mac # build unsigned universal macOS dmg + zip
npm run build:mac:dir # build unpacked universal macOS app directory
npm start # run built server
npm run start:cli # run built app through CLI launcher
npm run typecheck # TypeScript checks for client and server
npm run lint # ESLint
The intended repo flow is:
dev receives active work and nightly changesmain stays as the promoted/stable branchTo promote dev, open GitHub Actions, choose Promote dev to main, run the workflow, and type:
promote dev
By default the action runs npm ci, npm run typecheck, and npm run build before promotion. If main has commits that are not yet in dev, the workflow first merges main into the promotion candidate, then fast-forwards both dev and main to the checked commit.
Install or upgrade a downloaded package with:
sudo apt install ./centauri_<version>_amd64.deb
Newer .deb releases install directly over older Centauri .deb installs because the package name stays centauri and the version increases. The package also declares Conflicts/Replaces: quanta-control for compatibility with any older Debian package under the previous app name.
GitHub Actions includes separate manual release builders for Linux .deb packages and universal macOS .dmg/.zip artifacts. Both default to draft prereleases and can use either the package.json version or a version/tag provided from the workflow dispatch form.
Centauri can generate commit messages from the current Git diff using an OpenAI-compatible endpoint configured in Settings.
The prompt is tuned for concise, professional Conventional Commit-style messages and treats diffs/filenames as data, not instructions.
Centauri is intentionally local-first, but it still launches real local processes:
Centauri uses your existing Git/GitHub setup. A common first-time setup is:
gh auth login
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
SSH and HTTPS remotes work too as long as your local Git environment can use them.
Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.
Tool
OS
Config file: ~/.cursor/mcp.json
{
"mcpServers": {
"mcp-server": {
"url": "{MCP_ENDPOINT_URL}"
}
}
}Paste into mcpServers in the config file. Restart Cursor after saving.
If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.