by iishyfishyy
Run many Claude Code (or Codex) sessions in parallel — across every project — from one screen. Local-first, git-worktree-isolated tasks, no API key.
# Add to your Claude Code skills
git clone https://github.com/iishyfishyy/operator-ossLast scanned: 7/31/2026
{
"issues": [
{
"type": "npm-audit",
"message": "@hono/node-server: Node.js Adapter for Hono: Path traversal in `serve-static` on Windows via encoded backslash (`%5C`)",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@modelcontextprotocol/sdk: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "fast-uri: fast-uri vulnerable to host confusion via literal backslash authority delimiter",
"severity": "high"
},
{
"type": "npm-audit",
"message": "next: Next.js: Denial of Service in App Router using Server Actions",
"severity": "high"
},
{
"type": "npm-audit",
"message": "postcss: PostCSS has XSS via Unescaped </style> in its CSS Stringify Output",
"severity": "high"
},
{
"type": "npm-audit",
"message": "sharp: sharp inherited vulnerabilities in libvips: CVE-2026-33327, CVE-2026-33328, CVE-2026-35590, CVE-2026-35591",
"severity": "high"
},
{
"file": "CLAUDE.md",
"line": 28,
"type": "dangerous-command",
"message": "Dangerous command (disables permission prompts): \"bypassPermissions\"",
"severity": "medium"
}
],
"status": "WARNING",
"scannedAt": "2026-07-31T06:43:37.016Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}operator-oss is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by iishyfishyy. Run many Claude Code (or Codex) sessions in parallel — across every project — from one screen. Local-first, git-worktree-isolated tasks, no API key. It has 196 GitHub stars.
operator-oss returned warnings in SkillsLLM's automated security scan. It has no critical vulnerabilities, but review the flagged issues in the Security Report section before adding it to your workflow.
Clone the repository with "git clone https://github.com/iishyfishyy/operator-oss" and add it to your Claude Code skills directory (see the Installation section above).
operator-oss is primarily written in TypeScript. It is open-source under iishyfishyy on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh operator-oss against similar tools.
No comments yet. Be the first to share your thoughts!
Requires a passing catalog security scan. Resolve the flagged issues and resubmit to enable featuring.
Each project carries reusable context. Each task is its own agent session — Claude Code or Codex — in its own git worktree. Drive ten at once, see exactly which one needs you, review every diff before it merges. Runs on your Max/Pro login — no API key, no per-token billing.

/clear hands a summary to a fresh context window; the task lives on./clear and Refresh with AI also show their likely token/API-price-equivalent cost at the point of action.Watch the session stream — tool calls, edits, questions:

Review the diff next to the chat, then merge (or open a PR):

A real terminal, right in the workspace:

| Agent | Status |
|---|---|
| Claude Code | Fully supported — the reference driver; every feature lands here first. |
| OpenAI Codex | Fully supported — parallel tasks, diff review/merge, /clear lineage, interactive questions (via the orchestrator's ask_user bridge), and cost tracking. Two caveats from the upstream CLI being non-interactive: dollar figures are estimated from token counts × published API prices (ChatGPT-plan auth reports tokens only — shown with a ~), and there are no mid-turn command approval prompts, so the permission modes offered are Auto-run and Plan. Issues welcome. |
Claude is a default, not a requirement. The app is agent-agnostic end to end: connect Codex alone and everything works — the first-run wizard is satisfied by any one agent and adopts it as your default, new tasks default to a connected agent (never a grayed-out one), and the app's own utility jobs (project recaps, "Refresh with AI" context drafts) resolve their agent connected-first, so they run on Codex when Claude isn't connected. Settings → Background jobs names the agent those jobs will actually use, shows their last-30-day usage, and marks it (fallback) when it isn't the one you configured. The background_jobs setting defaults to on and stops unattended agent work when set to off; recap_mode defaults to automatic and also supports on_open and off. Explicit /clear, Refresh with AI, and manual recap requests remain available. With nothing connected, utility jobs stop with a "connect an agent" message rather than failing silently.
Want another agent? The driver seam is small — see adding a new agent.
Open Insights from the top bar for a local analytics dashboard of what your agents cost and ship: per-day spend and token usage (including cache reads/writes), tasks shipped, and lines merged to base — sliceable by project and agent across 7/30/90-day ranges, with deltas against the prior period. Operator overhead stays separate from task usage and breaks down the plan quota spent by Operator's own convenience features (recaps, session summaries, context drafts, and agent verification), including cost per run. Everything is computed from the local SQLite database in a single fetch, filter changes recompute instantly in the browser, and nothing is sent anywhere. Claude spend is the SDK-reported dollar figure; Codex spend is estimated from token counts at published API prices and marked with a ~.
The per-task chip in the session header reads 250k tok · 3.5M cached · ~$4.20, and each part means something different:
| Part | What it means |
|---|---|
250k tok |
Tokens the agent processed for the first time: prompt, completion, and context written into the prompt cache. This is the headline because it's the work that actually happened. |
3.5M cached |
Prompt-cache reads: the conversation so far, re-sent every turn and billed at ~10% of the input rate. It dominates the raw token total on any long task and is not 3.5M tokens of new work. |
~$4.20 |
On a Max/Pro or ChatGPT subscription login this is an API-price equivalent: what those tokens would have cost through the API. Your turns draw on plan quota, so the marginal cost is $0 and the figure carries a ~. With an API key connected instead, it's a real billed amount and shows plainly. Codex figures are additionally estimated (its CLI reports tokens only). |
Hover the chip for the exact counts and the full breakdown.
Give a project dev / setup / test commands in its context editor (⚙) and the
Services drawer runs them as supervised processes owned by the server — not by an
agent turn or a browser tab — so npm run dev keeps serving after the turn ends and the
tab closes, with live logs on reconnect. Agents can also register servers they started
via the expose_service tool.
ORCH_SERVICE_PORT_BASE + slot), injected as PORT
into its services and PTY shell.kill -9, OOM), the next boot reaps the orphaned
process group before respawning, so restarts never fight zombies for ports; a clean
shutdown kills its service processes on the way out.ORCH_SERVICE_LOG_LINES, default 1500 lines).GET /api/instance/idle reports
runningServices informationally): stopping the instance is safe because services
restart on boot at the same URL.Public URLs are a separate opt-in. Set ORCH_SERVICE_HOSTS=1 (plus
PUBLIC_BASE_URL and wildcard DNS/TLS) and each service gets a stable hostname
<slug>--<your-host> with per-service visibility — private (your session only),
shared (tokened link), or public. Enabling the services feature alone exposes
nothing. Frameworks with host checks see the hostname as ORCH_PUBLIC_HOST in the
service's env: Vite → server.allowedHosts: [process.env.ORCH_PUBLIC_HOST], Next dev →
allowedDevOrigins: [process.env.ORCH_PUBLIC_HOST]; CRA/webpack-dev-server is
pre-cleared via env.
Managed services are on by default; ORCH_FEATURE_SERVICES=0 turns the whole feature off.
npm install
npm run build
npm start
# open http://localhost:3000
This is the production build — use it whenever you're actually using the app.
Hacking on Operator itself? npm run dev runs the dev server (Turbopack + React dev
build) with hot reload — but it compiles each route on