mains

agent
Security Audit
Fail
Health Warn
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Fail
  • 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 Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

Mains for AI coding agents.

README.md

Mains

Mains

Home for agents

License: MIT
Electron
React
TypeScript
SQLite


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
  1. Open Settings and configure a provider (Copilot, Claude, Codex, or Cursor)
  2. Add a local git repository as a workspace
  3. 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.ts changes
  • better-sqlite3 mismatch — Run npm run reset
  • Full reset — Run npm run hard-reset

Contributing

See CONTRIBUTING.md.

License

MIT © Mains

Reviews (0)

No results found