1.0.0 强制要求 OpenCode V2(最低 2.2.3,推荐 2.2.5),V1 与旧 V2 beta 协议不支持;服务端默认只绑定 127.0.0.1,远程访问需加 --host 0.0.0.0;默认启用 HTTPS 会生成自签名证书,浏览器首次访问会报连接不安全警告,本地可加 --https=false --http=true 关闭。
CodeNomad
NeuralNomadsAIMIT活跃维护把多个 LLM 编码 Agent 集中到一个桌面指挥中心里统一调度和管理,让 AI 写代码不再散落在各个终端窗口。
CodeNomad: The command center that puts AI coding on steroids.
npx @neuralnomads/codenomad --password "your-password" --launchREADME 未说明显存或 GPU 要求;桌面版自带 Node 运行时,无需另装 Node.js;服务端需 Node.js 24 LTS(推荐)与 OpenCode V2。
OpenCode V2 的桌面与浏览器工作台,管理多项目、长会话和 Git worktree
把多个 LLM 编码 Agent 集中到一个桌面指挥中心里统一调度和管理,让 AI 写代码不再散落在各个终端窗口。
核心能力
- 按窗口管理多项目标签、草稿与视图恢复
- 嵌套会话浏览、分叉对话与全历史时间线跳转
- 创建并切换 Git worktree,可连同子会话迁移
- 支持 @ 引用项目文件、粘贴拖拽附件与文件面板
- 远程访问带密码认证与 HTTPS,可经 OpenTunnel 配对
容易踩的坑
- v1.1.0-dev-20261109-9a7114c3pre-release最新正式版2026-11-09 · 2026-11-09 07:57 UTC
What's Changed
- feat(missions): open questions from red mission and task rows by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1385
- fix(previews): keep preview targets on the preview origin by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1387
- chore(missions): bordered panel commands and remove dead tree leftovers by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1388
- test(missions): validate owned marks cancellation selectors by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1362
- fix(missions): keep the panel inside the window and move Save as brief to its menu by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1389
- build(deps-dev): bump electron-vite from 4.0.1 to 6.0.0 by @dependabot[bot] in https://github.com/NeuralNomadsAI/CodeNomad/pull/1325
- fix(missions): make the subagent depth one menu row and Save as brief an icon by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1391
- test(missions): wait for the inventory rows before measuring panel geometry by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1392
- ci: serve release downloads from verified dev-seeded caches by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1390
- build(deps): bump tauri-winres from 0.3.5 to 0.3.7 in /packages/tauri-app in the tauri group by @dependabot[bot] in https://github.com/NeuralNomadsAI/CodeNomad/pull/1333
- chore(release): prepare CodeNomad 1.1.0 by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1394
- build(cloudflare): update Wrangler to 4.158 and keep deploys without source-map uploads by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1397
- test(missions): record failure evidence for two intermittent panel tests by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1396
- test(browser): isolate stream delta projection outline requests by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1363
- build(deps): refresh vulnerable glob, minimatch, brace-expansion, jws and mdast-util-to-hast copies by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1398
- feat(tauri): embed native WebKit previews on macOS and Linux by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1301
- fix(client-state): let one slow identity helper use the whole lookup budget by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1400
- feat(help): open localized guide sections from contextual info icons by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1404
- feat(sessions): archive and restore native conversations by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1406
- fix(missions): make the tree behave like the session list by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1402
- feat(usage): enable Console calibration for free estimates by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1411
- fix(missions): compact configuration and compose once-now launches by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1405
- fix(missions): apply Missions profile preferences to agent preparations by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1305
- test(missions): synchronize compact-form fixture reads and publication by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1407
Full Changelog: https://github.com/NeuralNomadsAI/CodeNomad/compare/v1.0.1-dev-20261108-175b1820...v1.1.0-dev-20261109-9a7114c3
- v1.0.1-dev-20261108-175b1820pre-release2026-11-08 · 2026-11-08 07:05 UTC
查看更新说明
What's Changed
- test(missions): fix the 400-task scroll observation race by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1351
- test(missions): make deadline-admission checks deterministic by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1344
- build(deps-dev): bump get-tsconfig from 4.13.0 to 4.14.3 by @dependabot[bot] in https://github.com/NeuralNomadsAI/CodeNomad/pull/1341
- build(deps): bump the cargo-dependencies group in /packages/tauri-app with 147 updates by @dependabot[bot] in https://github.com/NeuralNomadsAI/CodeNomad/pull/1337
- build(deps): bump @internationalized/date from 3.10.0 to 3.12.4 by @dependabot[bot] in https://github.com/NeuralNomadsAI/CodeNomad/pull/1339
- fix(storage): support native split assistant parts across history and pruning by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1359
- ci(deps): keep unrelated maintenance proposals separate by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1353
- fix(deps): patch the Solid serialization dependency family by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1354
- fix(deps): patch node-forge certificate handling by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1355
- fix(deps): patch Fastify proxy address handling by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1356
- fix(deps): patch the maintained xmldom packaging dependency by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1357
- build(deps): bump plist from 1.10.0 to 1.10.3 in /packages/tauri-app by @dependabot[bot] in https://github.com/NeuralNomadsAI/CodeNomad/pull/1366
- test(opencode): retain isolated runtime reload failure evidence by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1360
- fix(missions): resolve scheduled wakes from native message records (OpenCode 2.2.6) by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1350
- chore(opencode): recommend qualified runtime 2.2.6 by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1379
- test(missions): await owned service readiness before fixture connection by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1380
- ci(deps): limit ordinary Dependabot intake to one PR per job by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1378
- build(deps-dev): bump @babel/plugin-transform-dotall-regex from 7.28.6 to 7.29.7 by @dependabot[bot] in https://github.com/NeuralNomadsAI/CodeNomad/pull/1368
- build(deps-dev): bump semver from 7.7.3 to 7.8.6 in /packages/cloudflare by @dependabot[bot] in https://github.com/NeuralNomadsAI/CodeNomad/pull/1372
- build(deps-dev): bump tslib from 2.8.1 to 2.9.1 in /packages/cloudflare by @dependabot[bot] in https://github.com/NeuralNomadsAI/CodeNomad/pull/1373
- build(deps-dev): bump @emnapi/runtime from 1.8.1 to 1.11.3 in /packages/cloudflare by @dependabot[bot] in https://github.com/NeuralNomadsAI/CodeNomad/pull/1376
- fix(runtime): expose bundled npm and npx to owned child commands by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1377
- chore(runtime): update bundled npm to 12.2.2 (major 11.x → 12.x: maintainer qualification needed) by @github-actions[bot] in https://github.com/NeuralNomadsAI/CodeNomad/pull/1342
- feat(missions): show the Missions panel as a tree under a two-line header by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1381
- fix(tauri): restore image and file paste on Linux by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1383
- ci(deps): turn off routine Dependabot version updates by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1382
- feat(missions): show tasks as child rows and let a task take the header toolbar by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1384
- fix(server): move to Fastify 5 and its current plugins by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1386
- v1.0.1-dev-20261107-b6bea60dpre-release2026-11-07 · 2026-11-07 06:57 UTC
查看更新说明
What's Changed
- chore(runtime): update Node LTS to 24.22.2 by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1314
- feat(usage): show Gemini CLI and Antigravity quotas with an in-memory Google refresh by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1312
- feat(memory): add opt-in persistent agent memory by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1313
- chore(pruning): remove the unused TUI companion plugin by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1316
- build(tauri): update to Tauri 2.12 and keep its crates current by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1320
- feat(usage): read OpenCode Console usage and mark free quota exhaustion by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1317
- feat(sessions): keep the chevron's activity when expanded and mark a hierarchy as read by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1319
- build(electron): update to Electron 45 and keep the desktop toolchains current by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1315
- build(deps-dev): bump postcss from 8.5.6 to 8.5.23 in /packages/ui by @dependabot[bot] in https://github.com/NeuralNomadsAI/CodeNomad/pull/1322
- ci(deps): separate security fixes from routine dependency maintenance by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1327
- fix(server): bound malformed arrays before Zod validation by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1329
- fix(server): patch Undici remote-response denial of service by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1328
- build(runtime): separate bundled npm pinning from Node maintenance by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1330
New Contributors
- @dependabot[bot] made their first contribution in https://github.com/NeuralNomadsAI/CodeNomad/pull/1322
Full Changelog: https://github.com/NeuralNomadsAI/CodeNomad/compare/v1.0.1-dev-20261106-5939d4c9...v1.0.1-dev-20261107-b6bea60d
- v1.0.1-dev-20261106-5939d4c9pre-release2026-11-06 · 2026-11-06 07:49 UTC
查看更新说明
What's Changed
- perf(transcript): coalesce streaming projections to one pass per frame by @heunghingwan in https://github.com/NeuralNomadsAI/CodeNomad/pull/1289
- fix(transcript): preserve message order when HTTP is ahead of live events by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1294
- feat(transcript): move first/latest controls into the composer corner by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1295
- fix(transcript): hold the top after an immediate jump to the first message by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1302
- fix(worktrees): omit sibling checkouts that lack the opened nested folder by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1299
- fix(electron): confirm Windows backend shutdown with native process identities by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1306
- fix(server): complete graceful desktop shutdown promptly by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1310
- feat(plugins): protect CodeNomad-managed system plugins by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1308
- feat(settings): keep the computer awake while CodeNomad is running by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1307
- perf(electron): run the backend with Electron's Node by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1304
- feat(usage): upgrade provider usage readers by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1309
Full Changelog: https://github.com/NeuralNomadsAI/CodeNomad/compare/v1.0.1-dev-20261104-4bac3733...v1.0.1-dev-20261106-5939d4c9
- v1.0.1-dev-20261104-4bac3733pre-release2026-11-04 · 2026-11-04 18:20 UTC
查看更新说明
What's Changed
- fix(sessions): restore parent chevron expansion by @pascalandr in https://github.com/NeuralNomadsAI/CodeNomad/pull/1292
Full Changelog: https://github.com/NeuralNomadsAI/CodeNomad/compare/v1.0.1-dev-20261104-990f6ce0...v1.0.1-dev-20261104-4bac3733
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
CodeNomad
The AI Coding Cockpit for OpenCode
CodeNomad is a desktop and browser workspace for OpenCode V2 — built for developers who work across projects, long conversations, and Git worktrees. It connects to OpenCode's shared background service, keeping your sessions accessible from CodeNomad and compatible terminal clients.
OpenCode gives you the engine. CodeNomad gives you the cockpit.

The 0.20 interface, rendered with demonstration data. Download the latest stable release.
▶️ Watch the 90-second tour of CodeNomad 1.0
User help · Read the English guide on GitHub — multilingual help for current CodeNomad and OpenCode V2.
Features
- 🚀 Projects and desktop windows — Keep multiple projects open, with per-window tabs, drafts, attachments, and view restoration.
- 🧠 Sessions and full-history navigation — Browse nested sessions, fork conversations, search beyond loaded messages, and jump through long histories with a timeline and previews.
- 🌳 Git worktrees — Create and select worktrees, move a session with its subsessions, and review Git changes without leaving the workspace.
- 💬 Rich conversations — Markdown, code, diffs, tool-result images, configurable reasoning/tool visibility, and
/btwfor a temporary side question. - 📎 Files and attachments — Pick, paste, or drop device files; use
@references for project files and browse your workspace from the file panel. - 🌐 Remote access — Connect to a CodeNomad server from a desktop client or browser, with password authentication and HTTPS support. Or turn on Remote Control to pair a phone or another computer from anywhere through an OpenTunnel relay, without opening ports: TLS ends on your machine.
- 🧩 Tools and previews — Monitor native background shells, manage MCP connections and Global/Project plugin activation, and open web tools as SideCars.
- 🔎 Agent-driven browser previews — Let your agent open and inspect a visible web preview in Electron or Windows Tauri.
- 🎙️ Voice input and speech — Dictate prompts and listen to responses.
- ⌨️ A workspace you can adapt — Command palette, notifications, customizable panels, independent light/dark palettes, and multiple interface languages.
Getting Started
🖥️ Desktop App
Available as both Electron and Tauri builds — choose based on your preference.
Download the archive or package for your platform from the download page or Releases.
| Platform | Electron | Tauri |
|---|---|---|
| macOS | ZIP, separate Intel and Apple Silicon builds | ZIP, separate Intel and Apple Silicon builds |
| Windows | ZIP (x64) | Installer (x64) |
| Linux | deb (x64) | AppImage (x64) |
The Linux builds are currently built and tested on Ubuntu 24.04. Compatibility with older distributions is not yet guaranteed. The Electron deb sets up Chromium's sandbox during installation and replaces a previously installed Tauri deb. The Tauri installer, macOS app and AppImage update themselves from within the app.
On Linux, from the download folder:
# Electron deb
sudo apt install ./CodeNomad-Electron-linux-x64-<version>.deb
# Tauri AppImage
chmod +x CodeNomad-Tauri-linux-x64-<version>.AppImage
./CodeNomad-Tauri-linux-x64-<version>.AppImage
Without FUSE (for example in a container), start the AppImage with --appimage-extract-and-run.
Desktop builds include the server's Node runtime and npm (Electron's integrated Node or Tauri's bundled Node); you do not need to install Node.js separately. On first launch, select an existing compatible OpenCode executable or install OpenCode through the setup screen. You can manage the executable, updates, and service later in Preferences → OpenCode.
Open a project folder, connect your model provider, and start a session. Git must be available to the CodeNomad backend for repository and worktree features; see Requirements.
💻 CodeNomad Server
Run on your development machine and access it through a browser. Install Node.js/npm and OpenCode V2 on that host first; Node.js 24 LTS is the recommended runtime (see Requirements).
npx @neuralnomads/codenomad --password "your-password" --launch
The server binds to 127.0.0.1 by default. For remote access, add --host 0.0.0.0 and connect to the printed HTTPS address; see Server Documentation for binding and TLS configuration.
Authentication: Supply
--passwordorCODENOMAD_SERVER_PASSWORDon each start, or use the UI's persistent password setup.auth.jsonis managed by CodeNomad; see Authentication.
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
OpenCode V2 and upgrading from 0.19.x
CodeNomad 1.0.0 requires OpenCode V2: 2.2.3 minimum, 2.2.5 recommended; the minimum provides the image generation tool used by the Images settings and the Design extension. OpenCode V1 and the former V2 beta protocol are not supported. The current requirements are maintained in runtime-support.ts.
- One shared OpenCode service owns sessions and messages. Closing a CodeNomad tab, window, or backend leaves that service running. Desktop tabs, drafts, and layout are restored separately for each window.
- Use an existing CLI or install from CodeNomad. Executables on
PATHare preferred; the setup screen also supports a selected executable and a shared user npm installation. The former private CodeNomad OpenCode installation is no longer used. - Updating the CLI and restarting its service are separate actions. Use the explicit service controls in Preferences when you want the running daemon to use an updated executable.
- Remote users should upgrade their CodeNomad server too. The 0.20 UI requires CodeNomad server 0.20.0 or later.
For a manual CLI installation, follow the OpenCode V2 installation guide. The npm package is @opencode/cli and the command is opencode.
SideCars
SideCars let you open web tools running on the CodeNomad server host inside CodeNomad as tabs. Start the service separately, then add it in Preferences → SideCars.
A SideCar runs inside CodeNomad with the same access as the application, so only add services you trust, and avoid ones that display content you do not control.
Session web previews are also available from the conversation toolbar. Agent-driven native browser automation is supported in Electron and Windows Tauri; other Tauri platforms use an iframe preview. See Browser Automation for platform details.
- Name: Display name used in CodeNomad
- Port: Numeric port of the service on the server host, at
127.0.0.1:<port> - Protocol: Select HTTP or HTTPS to match the service
- Base path: Derived from the name and displayed as
/sidecars/:id - Prefix mode:
- Preserve prefix forwards the full
/sidecars/:id/...path upstream - Strip prefix removes
/sidecars/:idbefore forwarding the request upstream
- Preserve prefix forwards the full
Run with Docker:
docker run -it --init -p 127.0.0.1:8000:3000 -v "${HOME}:${HOME}:cached" -e HOME=${HOME} gitpod/openvscode-server --server-base-path /sidecars/vscode
Add SideCar as:
- Name:
VSCode - Port:
8000 - Protocol:
HTTP - Base path:
/sidecars/vscode - Prefix mode:
Preserve prefix
Run with:
ttyd --writable zsh
Add SideCar as:
- Name:
Terminal - Port:
7681 - Protocol:
HTTP - Base path:
/sidecars/terminal - Prefix mode:
Strip prefix
Requirements
- OpenCode V2 — 2.2.3 minimum and 2.2.5 recommended for CodeNomad 1.0.0. Install/select it through desktop setup or provide a compatible CLI on the server host.
- Git — a prerequisite for full functionality (repository identity, Git operations and worktrees). Git must be executable in the CodeNomad backend's
PATH; it is not bundled with the desktop installers. - Node.js and npm — required for the standalone npm server and source builds; desktop releases include their own (Electron's integrated Node or Tauri's bundled Node, with npm). Use Node.js 24 LTS; development and release builds use the version in
.node-version.
On Windows, install Git for Windows with the option to use Git from the command line and third-party software. A per-user installation is sufficient and does not require administrator rights; install into a user-writable directory and make Git available in the user PATH. On macOS or Linux, follow the platform installation instructions. Fully quit and restart CodeNomad after installation so its backend inherits the updated PATH. For a remote server, install Git on the server host for the account running CodeNomad and restart that server process, not just the browser. A Git installation available only inside WSL does not satisfy the Windows backend's requirement.
Without Git, CodeNomad tolerates a degraded, directory-only mode. You can open a folder and talk to your agent, including asking it to help install Git. The backend supplies the agent with Git availability and backend platform context before prompts and custom commands; there is no blocking Git installation screen. Git operations and worktree management require Git. Session access is restricted to the explicitly opened physical folder; open another checkout separately to access its conversations. The agent's shell and the CodeNomad backend can run on different hosts, so installation help must target the backend account and environment. Git availability is rechecked on subsequent sends and the agent context is removed once it is available.
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 — native windows, integration, and packaging |
Quick Start
git clone --branch dev https://github.com/NeuralNomadsAI/CodeNomad.git
cd CodeNomad
npm ci --workspaces --include=optional
npm run dev
npm run dev starts the Electron development host. Use Node.js from .node-version, Git, and a compatible OpenCode V2 CLI. For Tauri, install the platform build prerequisites and run npm run dev:tauri. See CONTRIBUTING.md for the development and PR workflow.
Troubleshooting
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.
WebKitGTK DMA-BUF/GBM issue. Run with:
WEBKIT_DISABLE_DMABUF_RENDERER=1 ./CodeNomad-Tauri-linux-x64-<version>.AppImage
This applies to the Tauri WebKitGTK build. Electron uses Chromium and can be used as an alternative on the same machine.
Community
Built with ♥ by Neural Nomads · MIT License · Privacy policy · Code signing policy