MCPcopy Index your code
hub / github.com/NeuralNomadsAI/CodeNomad

github.com/NeuralNomadsAI/CodeNomad @v0.18.0 sqlite

repository ↗ · DeepWiki ↗ · release v0.18.0 ↗
3,886 symbols 10,967 edges 570 files 10 documented · 0%
README

CodeNomad

The AI Coding Cockpit for OpenCode

CodeNomad transforms OpenCode from a terminal tool into a premium desktop workspace — built for developers who live inside AI coding sessions for hours and need control, speed, and clarity.

OpenCode gives you the engine. CodeNomad gives you the cockpit.

Multi-instance workspace


Features

  • 🚀 Multi-Instance Workspace
  • 🌐 Remote Access
  • 🧠 Session Management
  • 🎙️ Voice Input & Speech
  • 🌳 Git Worktrees
  • 💬 Rich Message Experience
  • 🧩 SideCars
  • ⌨️ Command Palette
  • 📁 File System Browser
  • 🔐 Authentication & Security
  • 🔔 Notifications
  • 🎨 Theming
  • 🌍 Internationalization

Getting Started

🖥️ Desktop App

Available as both Electron and Tauri builds — choose based on your preference.

Download the latest installer for your platform from Releases.

Platform Formats
macOS DMG, ZIP (Universal: Intel + Apple Silicon)
Windows NSIS Installer, ZIP (x64, ARM64)
Linux AppImage, deb, tar.gz (x64, ARM64)

💻 CodeNomad Server

Run as a local server and access via browser. Perfect for remote development.

npx @neuralnomads/codenomad --password <your-password> --launch

Authentication required: The server requires a password on first run. You can pass it via --password, the CODENOMAD_SERVER_PASSWORD environment variable, or create an auth.json file (see Server Documentation).

Self-signed certificate: On first launch with HTTPS enabled (the default), your browser will show a "Your connection is not private" warning. This is expected — the server generates a local self-signed certificate automatically. Click Advanced → Proceed to localhost to continue. For local-only use without the warning, run with --https=false --http=true.

See Server Documentation for flags, TLS, auth, and remote access.

🧪 Dev Releases

Bleeding-edge builds from the dev branch:

npx @neuralnomads/codenomad-dev --password <your-password> --launch

SideCars

SideCars let you open local web tools inside CodeNomad as tabs.

Configuration

  • Name: Display name used in CodeNomad
  • Port: Local HTTP or HTTPS service running on 127.0.0.1:<port>
  • Base path: Mounted under /sidecars/:id
  • Prefix mode:
  • Preserve prefix forwards the full /sidecars/:id/... path upstream
  • Strip prefix removes /sidecars/:id before forwarding the request upstream

VSCode (OpenVSCode Server)

Run with Docker:

docker run -it --init -p 8000:3000 -v "${HOME}:${HOME}:cached" -e HOME=${HOME} gitpod/openvscode-server --server-base-path /sidecars/vscode

Add SideCar as:

  • Name: VSCode
  • Port: http://127.0.0.1:8000
  • Base path: /sidecars/vscode
  • Prefix mode: Preserve prefix

Terminal (ttyd)

Run with:

ttyd --writable zsh

Add SideCar as:

  • Name: Terminal
  • Port: http://127.0.0.1:7681
  • Base path: /sidecars/terminal
  • Prefix mode: Strip prefix

Requirements

  • OpenCode CLI — must be installed and in your PATH
  • Node.js 18+ — for server mode or building from source

Development

CodeNomad is a monorepo built with:

Package Description
packages/server Core logic & CLI — workspaces, OpenCode proxy, API, auth, speech
packages/ui SolidJS frontend — reactive, fast, beautiful
packages/electron-app Desktop shell — process management, IPC, native dialogs
packages/tauri-app Tauri desktop shell (experimental)

Quick Start

git clone https://github.com/NeuralNomadsAI/CodeNomad.git
cd CodeNomad
npm install
npm run dev

Troubleshooting

macOS: "CodeNomad.app is damaged and can't be opened"

Gatekeeper flag due to missing notarization. Clear the quarantine attribute:

xattr -dr com.apple.quarantine /Applications/CodeNomad.app

On Intel Macs, also check System Settings → Privacy & Security on first launch.

Linux (Wayland + NVIDIA): Tauri App closes immediately

WebKitGTK DMA-BUF/GBM issue. Run with:

WEBKIT_DISABLE_DMABUF_RENDERER=1 codenomad

See full workaround in the original README.


Community

Star History


Built with ♥ by Neural Nomads · MIT License

Extension points exported contracts — how you extend this code

ReleaseMonitor (Interface)
(no doc) [3 implementers]
packages/server/src/releases/release-monitor.ts
CliProcessManager (Interface)
(no doc) [1 implementers]
packages/electron-app/electron/main/process-manager.ts
LegacyPermissionRequest (Interface)
(no doc)
packages/ui/src/types/permission.ts
Env (Interface)
(no doc)
packages/cloudflare/src/index.ts
DevReleaseMonitor (Interface)
(no doc) [3 implementers]
packages/server/src/releases/dev-release-monitor.ts
DialogOpenRequest (Interface)
(no doc)
packages/electron-app/electron/main/ipc.ts
ElectronDialogFilter (Interface)
(no doc)
packages/ui/src/types/global.d.ts
SpeechProvider (Interface)
(no doc) [2 implementers]
packages/server/src/speech/service.ts

Core symbols most depended-on inside this repo

t
called by 1267
packages/ui/src/lib/i18n/index.tsx
get
called by 566
packages/ui/src/lib/hooks/use-global-cache.ts
set
called by 280
packages/ui/src/lib/hooks/use-global-cache.ts
delete
called by 189
packages/server/src/previews/manager.ts
tGlobal
called by 183
packages/ui/src/lib/i18n/index.tsx
replace
called by 174
packages/server/src/settings/yaml-doc-store.ts
on
called by 112
packages/electron-app/electron/main/process-manager.ts
resolve
called by 101
packages/server/src/loader.ts

Shape

Function 2,979
Interface 438
Method 397
Class 72

Languages

TypeScript100%

Modules by API surface

packages/ui/src/components/message-block.tsx77 symbols
packages/ui/src/stores/preferences.tsx76 symbols
packages/ui/src/stores/instances.ts72 symbols
packages/ui/src/components/virtual-follow-list.tsx72 symbols
packages/ui/src/stores/session-state.ts66 symbols
packages/ui/src/lib/api-client.ts64 symbols
packages/ui/src/stores/message-v2/instance-store.ts60 symbols
packages/server/src/server/http-server.ts60 symbols
packages/ui/src/components/message-timeline.tsx57 symbols
packages/server/src/api-types.ts54 symbols
packages/ui/src/components/message-section.tsx53 symbols
packages/ui/src/components/prompt-input.tsx51 symbols

Dependencies from manifests, versioned

7zip-bin5.2.0 · 1×
@fastify/cors8.5.0 · 1×
@fastify/reply-from9.8.0 · 1×
@fastify/static7.0.4 · 1×
@hey-api/openapi-ts0.90.10 · 1×
@kobalte/core0.13.11 · 1×
@opencode-ai/plugin1.3.7 · 1×
@opencode-ai/sdk1.17.8 · 1×
@solidjs/router0.13.0 · 1×
@suid/icons-material0.9.0 · 1×
@suid/material0.19.0 · 1×

For agents

$ claude mcp add CodeNomad \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact