mains
Health Uyari
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Basarisiz
- fs module — File system access in .github/workflows/release.yml
- process.env — Environment variable access in drizzle.config.ts
- fs.rmSync — Destructive file system operation in forge.config.js
- process.env — Environment variable access in forge.config.js
- fs module — File system access in forge.config.js
- rm -rf — Recursive force deletion command in package.json
- fs.rmSync — Destructive file system operation in scripts/generate-codex-app-server-protocol.mjs
- process.env — Environment variable access in scripts/generate-codex-app-server-protocol.mjs
- execSync — Synchronous shell command execution in scripts/generate-third-party-notices.mjs
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Mains for AI coding agents.
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.
npm install
npm start
Features
Agents
- Multi-Agent - Run GitHub Copilot, Claude Code, OpenAI Codex, and Cursor side by side
- Session Management - Resume, continue, and fork agent sessions across runs
- Tool Approval - Interactive approve/deny flow for agent tool calls with pre-approved tool lists
- Structured Output - Define JSON schemas to constrain Claude agent output format
- MCP Support - Extend agents with Model Context Protocol servers
Workspaces & Projects
- Git-backed Workspaces - Status tracking (backlog → todo → in_progress → in_review → done), worktree isolation, and per-run diffs
- Projects - Group workspaces by remote origin with setup/run/archive scripts and shared commit/PR instructions
- Code Reviews - Request structured reviews with severity-tagged findings, file locations, and suggestions
- Context Injection - Attach files, diffs, selections, terminal output, linked issues, and Sentry errors as run context
- Activity Log - Automatic tracking of commits, reviews, findings, and PRs per workspace
Integrations
- Issue Sync - GitHub, GitLab, Linear, Jira, Asana, and Trello
- Error Tracking - Sentry issues synced as signals with stack traces, affected users, and regression info
- Dependency Guards - Package security checks via Socket.dev before installs (npm, pip, cargo, go, gems)
Observability
- Stats Dashboard - Daily runs, cost breakdown by model, tool usage analytics, and success rates per provider
- Run Artifacts - Collected patches, files, logs, reports, and command results per session
- Cost Tracking - Token usage and USD cost per run with cache metrics
Quick Start
Platform: macOS only (Apple Silicon and Intel). Windows and Linux are not supported yet.
Prerequisites: Node.js 20.19+, Git
git clone https://github.com/mainsdotdev/mains.git
cd mains
npm install
npm start
- Open Settings and configure a provider (Copilot, Claude, Codex, or Cursor)
- Add a local git repository as a workspace
- Open the Copilot, Claude, Codex, or Cursor view and start an agent run
For Copilot, you'll need GitHub CLI authenticated (gh auth login).
For Claude, you'll need Claude Code authenticated (claude login).
For Codex, you'll need Codex CLI authenticated (codex auth login).
For Cursor, you'll need the Cursor Agent CLI installed (curl https://cursor.com/install -fsS | bash) and authenticated (cursor-agent login).
Development
npm start # Dev server
npm run lint:fix # Lint with auto-fix
npm run package # Package for current platform
npm run make # Create distributable
Database
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
Troubleshooting
- Database locked — Close all instances, run
npm run db:clean:dev && npm run db:push - Preload changes not working — Full restart required for
src/preload/index.tschanges - better-sqlite3 mismatch — Run
npm run reset - Full reset — Run
npm run hard-reset
Contributing
See CONTRIBUTING.md.
License
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi