neuron-explorer
Steering-first neuron explorer for Qwen3.5-4B: push every MLP neuron, keep every rollout, browse the results
翻译准备中
在隔离的 Git 工作区运行 Claude Code、OpenAI Codex、GitHub Copilot 和 Cursor。审查更改、跟踪成本,并使用 Mains 安全交付。
AI 翻译
Run Claude Code, OpenAI Codex, GitHub Copilot, and Cursor in isolated Git workspaces. Review changes, track costs, and ship safely with Mains.
开发工具TypeScript · JavaScriptGitHub @mainsdotdev在线运营者未确认
试用过了吗? 点一下就好,无需登录。
Mains 用于 AI 编码代理。
AI 翻译
Mains for AI coding agents.
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Mains is a desktop app for running AI coding agents in managed workspaces. It wraps the GitHub Copilot, Claude Code, and Cursor SDKs and the OpenAI Codex app server, tracks every run with full observability, and syncs issues from the tools you already use — all from one place.查看完整 README ↗Mains is a macOS app for working with AI agents — Claude Code, OpenAI Codex, GitHub Copilot, and Cursor — side by side. Each space picks an agent and a mode: Code for repositories, Work for documents and files, Chat for conversations that only read. Runs keep going in the background, you can answer them from a notification, the menu bar, or your iPhone, and the same backend can run on a Mac or a Linux machine without the desktop app.
📖 What's new: mains.dev/changelog
Download the latest DMG for Apple Silicon (arm64) or Intel (x64) from Releases and move Mains to Applications — it updates itself from there.
Platform: macOS (Apple Silicon and Intel). Windows x64 beta preparation and its validation checklist are documented in Windows beta notes; a tested Windows release is pending. The standalone server also runs on Linux.
Onboarding shows where each agent stands and signs you in.
npm install -g @openai/codex.curl https://cursor.com/install -fsS | bash..gitignore)⌘⌥K) — commands, workspaces, runs, and documents, including what was said inside a run⌘⇧Space) — attach your frontmost Mac window to the next messageMains Server runs the backend and browser UI without Electron. Release builds are portable npm packages; platform-specific dependencies are installed for the host machine. Node.js 22.12+ is required.
npm install --global https://github.com/mainsdotdev/mains/releases/latest/download/mains-server.tgz
mains serve
The first run creates a persistent full-access owner token. To connect a phone on the same trusted network, expose private interfaces and scan the printed, five-minute pairing QR:
mains serve --lan
The phone exchanges that one-time code for its own revocable device token. Use
mains pair for another link, mains web for a one-use browser login, and
mains auth list|revoke to manage access without restarting the backend.
For remote access, use mains serve --tailscale-serve, or keep the default
loopback bind and use Settings → Mains Connect → SSH from the desktop app.
The standalone server can stay available without Electron or an open terminal:
mains service install --tailscale-serve
This installs a macOS LaunchAgent or Linux systemd user service. Direct public
exposure should sit behind a TLS proxy and be advertised explicitly with
--public-url.
By default the server opens the desktop app's Mains data directory, so existing
workspaces, collections, and run history appear without an import. Quit the
desktop app before starting the server, and stop the server before reopening
the app; an ownership lock rejects concurrent backend access. --data-dir opts
into isolated data.
Integration credentials saved in the desktop app are encrypted with the macOS keychain, which the server can't read; signing an integration in on the server adds a credential of its own instead of replacing the desktop's. CLI-backed agents use their normal host authentication.
| Path | What it is |
|---|---|
apps/desktop | The Electron desktop app (React 19 renderer, SQLite + Drizzle ORM) |
apps/server | The standalone server: Node entrypoint, mains CLI, npm packaging |
apps/mobile | The iPhone app (Expo / React Native), the desktop's remote control |
packages/backend | The Electron-free backend shared by desktop and server: database, domains, agent runtimes, transport |
packages/contracts | The wire contract shared by every app: IPC channels, WebSocket protocol, provider ids, modes |
packages/icons | The desktop icon registry as data (SVG shapes + tint helpers), so the iPhone app draws space and project icons the same way |
Each app and package installs its own dependencies — there is no root install.
packages/backend and packages/contracts are linked as file: dependencies,
so editing them needs no build step.
Prerequisites: Node.js 22.12+, Git
git clone https://github.com/mainsdotdev/mains.git
cd mains/apps/desktop
npm install
npm start
Desktop commands (from apps/desktop):
npm start # Start the Electron app
npm run lint:fix # Lint with auto-fix
npm run typecheck # Type-check main, preload, and renderer
npm test # Run the tests
npm run package # Package for current platform
npm run make # Create distributable
Standalone server commands (from apps/server; packaging also needs
apps/desktop dependencies installed):
npm --prefix ../desktop install
npm install
npm run serve -- --lan # Build, run, and print a phone pairing QR
npm run pair # Refresh the one-time pairing link
npm run service -- status # Inspect the background service
npm run package # Build dist/mains-server.tgz
npm run smoke:package # Clean-install and exercise WS/HTTP/CLI flows
The standalone development server exposes the Mains protocol over a
token-gated WebSocket. Its executable composition root stays in apps/server;
the Electron-free database, domain services, provider runtimes, and transport
implementation shared with desktop live in packages/backend.
Shared backend checks (from packages/backend):
npm install
npm run typecheck
npm run lint
npm test
For the iPhone app, see apps/mobile/README.md.
From apps/desktop:
npm run db:push # Push schema changes
npm run db:studio # Open Drizzle Studio
npm run db:generate # Generate migrations
npm run db:clean:dev # Reset dev database
npm run db:clean:dev && npm run db:pushsrc/preload/index.ts changesnpm run resetnpm run hard-resetSee CONTRIBUTING.md.