Releases · Release Guide · Contributing · Development · Support · Landing Page
NeoCode is an open-source, terminal-native coding agent. It gives you streaming AI responses, persistent sessions, PLAN and BUILD modes, local repository tools, NeoLens codebase intelligence, themes, and optional Model Context Protocol (MCP) integrations without pulling you out of the terminal.
It is built as a Bun monorepo with a terminal client, API server, shared package, database package, and a Vite-powered landing page.
- Terminal-first coding workflow with a focused OpenTUI interface.
- PLAN mode for read-only investigation and BUILD mode for implementation.
- Persistent sessions that can be reopened from
/sessions. - Model selection, agent switching, login, and themes from the command menu.
- NeoLens for local code exploration, workspace search, dependency context, and replaying agent activity.
- MCP server discovery through project-local
.neocode/mcp.json. - GitHub Releases for standalone binaries on macOS, Linux, and Windows.
- Homebrew support for macOS and Linux installs.
- Static landing page in
packages/web.
brew install Hardik180704/tap/neocodecurl -fsSL https://raw.githubusercontent.com/Hardik180704/NeoCode/main/install.sh | shAlpine Linux users must install the C++ runtime libraries first:
apk add --no-cache libstdc++ libgccirm https://raw.githubusercontent.com/Hardik180704/NeoCode/main/install.ps1 | iexStandalone binaries are also available from GitHub Releases. They include the Bun runtime, so users do not need to install Bun or Node.js to run NeoCode.
Current binaries are unsigned. macOS may require manual approval in Privacy & Security, and Windows may display a Microsoft Defender SmartScreen warning. Published SHA-256 checksums and GitHub attestations can be used to verify each download.
Update NeoCode using the same installation method you originally used. Avoid
mixing Homebrew and standalone installations, as multiple neocode binaries on
your PATH can cause an older version to run.
brew update && brew upgrade neocodeRerun the installer to download the latest release and replace the existing binary:
curl -fsSL https://raw.githubusercontent.com/Hardik180704/NeoCode/main/install.sh | shRerun the installer, then restart the terminal so the updated executable is used:
irm https://raw.githubusercontent.com/Hardik180704/NeoCode/main/install.ps1 | iexVerify the installed version on any platform:
neocode --versionNote
The /upgrade command manages NeoCode billing. It does not update the CLI.
Start NeoCode from inside any project directory:
cd path/to/project
neocodeCommon commands:
| Command | Purpose |
|---|---|
/new |
Start a new conversation |
/agents |
Switch between PLAN and BUILD agents |
/models |
Select the AI model |
/sessions |
Browse previous sessions |
/lens |
Explore the local codebase and inspect agent activity |
/mcp |
Inspect configured MCP servers and tool access |
/theme |
Change the terminal theme |
/login |
Sign in through the browser |
Use API_URL to point the CLI at a different NeoCode API during development:
API_URL=http://localhost:3000 neocodeNeoLens is NeoCode's local codebase explorer and execution-inspection workspace. It can be opened before a conversation to browse and search the current repository. During a session it also tracks file reads, edits, checks, failures, dependency relationships, model usage, duration, and estimated generation cost so you can understand what changed and why.
Open it at any time with:
/lens
The full-screen interface provides three views:
- Graph shows TypeScript dependency relationships and highlights files touched by the agent.
- Workspace provides read-only, line-numbered file previews plus capped filename
and content search. Press
/to search,Enterto open a file,Tabto switch panes, andj/kor the arrow keys to navigate. - Timeline replays tool activity and summarizes changed files, failures, model runs, tokens, elapsed time, and estimated cost.
Use F1, F2, and F3 to switch between Graph, Workspace, and Timeline when an
active session is available. Selecting a file or event and pressing Enter opens
the relevant source file in the Workspace view.
NeoLens is intentionally project-scoped and source stays on the local machine;
the Railway API receives session activity but does not receive file contents.
NeoLens respects common generated directories and root .gitignore rules, never
follows symbolic links, hides common credential files, rejects paths outside the
project, and caps indexing, search, and preview work to remain responsive on large
repositories. Start NeoCode inside a real repository so local paths can be resolved
safely.
NeoCode discovers MCP servers from .neocode/mcp.json in the active project.
MCP is optional; without it, NeoCode's built-in local tools continue to work.
Start from the included example:
mkdir -p .neocode
cp .neocode/mcp.example.json .neocode/mcp.jsonEvery MCP tool is denied by default and must have an explicit access policy:
| Policy | Availability |
|---|---|
read |
Available in PLAN and BUILD modes |
write |
Available only in BUILD mode |
disabled |
Never exposed to the model |
The special "*" policy can classify every otherwise-unlisted tool from a
server, but explicit per-tool policies are recommended.
Secrets should use environment references such as ${env:GITHUB_TOKEN}.
Resolved secret values stay in the server process and are not returned by the MCP
inspection API. Local stdio servers receive only a small safe set of inherited
process variables plus variables declared in their own env block.
Supported transports:
stdiofor local MCP server processes.- Streamable HTTP for remote MCP servers.
MCP clients are scoped to a response or inspection request and always closed after completion, failure, or interruption.
| Path | Purpose |
|---|---|
packages/cli |
Terminal UI and neocode command |
packages/server |
API, auth, chat routes, billing hooks, MCP runtime, NeoLens routes |
packages/shared |
Shared schemas, model metadata, and NeoLens graph types |
packages/database |
Prisma schema, generated client, and database adapter |
packages/web |
Vite React landing page |
scripts |
Release, packaging, Homebrew, and smoke-test scripts |
docs |
Release and operational documentation |
See the development guide for prerequisites, local PostgreSQL setup, environment variables, and the full contributor workflow.
Install dependencies:
bun install --frozen-lockfileRun the API server:
bun run dev:serverRun the terminal client:
bun run dev:cliRun the landing page:
bun run dev:webBuild the landing page:
bun run build:webRun tests:
bun testRun the complete local quality gate:
bun run checkNeoCode releases publish standalone CLI archives for macOS, Linux, and Windows through GitHub Releases. Homebrew formula updates are handled through the configured tap repository.
See docs/RELEASING.md for the full release and Homebrew process.
Contributions are welcome. Please read CONTRIBUTING.md before opening a pull request.
NeoCode is released under the MIT License.
