{"id":43772941,"url":"https://github.com/mieubrisse/agenc","last_synced_at":"2026-03-09T22:04:21.516Z","repository":{"id":335529919,"uuid":"1146104559","full_name":"mieubrisse/agenc","owner":"mieubrisse","description":"An agentic work factory focused on self-upgrading","archived":false,"fork":false,"pushed_at":"2026-02-16T20:25:02.000Z","size":7098,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-16T21:34:12.547Z","etag":null,"topics":["agent-orchestration","agent-oriented-programming","ai-agents"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mieubrisse.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-01-30T16:20:27.000Z","updated_at":"2026-02-16T20:25:05.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mieubrisse/agenc","commit_stats":null,"previous_names":["mieubrisse/agenc"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/mieubrisse/agenc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mieubrisse%2Fagenc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mieubrisse%2Fagenc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mieubrisse%2Fagenc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mieubrisse%2Fagenc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mieubrisse","download_url":"https://codeload.github.com/mieubrisse/agenc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mieubrisse%2Fagenc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29688232,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T15:51:39.154Z","status":"ssl_error","status_checked_at":"2026-02-21T15:49:03.425Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-orchestration","agent-oriented-programming","ai-agents"],"created_at":"2026-02-05T17:02:13.818Z","updated_at":"2026-03-09T22:04:21.500Z","avatar_url":"https://github.com/mieubrisse.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![AgenC — AI work factory](./readme-images/cover.png)\n\n\u003cdiv align=\"center\"\u003e\n    \u003ch1\u003eAgenC: the AI factory for learning loops\u003c/h1\u003e\n\u003c/div\u003e\n\n\u003c/h1\u003e\n  \u003cp align=\"center\"\u003e\n    AgenC is an AI work factory focused on learning loops.\u003c/br\u003e\n    \u003c/br\u003e\n    \u003cb\u003eThe idea:\u003c/b\u003e Launch tons of parallel Claudes. They stumble. Turn friction → a smarter factory. Repeat.\u003c/br\u003e\n    \u003c/br\u003e\n    You spend your time building the factory; the Claudes do the rest.\u003c/br\u003e\n    \u003c/br\u003e\n    \u003ca href=\"#why-agenc\"\u003eWhy AgenC\u003c/a\u003e\n    |\n    \u003ca href=\"#quickstart\"\u003eQuickstart\u003c/a\u003e\n    |\n    \u003ca href=\"#how-it-works\"\u003eHow It Works\u003c/a\u003e\n    |\n    \u003ca href=\"#vs-gastown\"\u003eVs Gastown\u003c/a\u003e\n    |\n    \u003ca href=\"https://discord.gg/x9Y8Se4XF3\"\u003eDiscord\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n[2026-02-16 demo](https://github.com/user-attachments/assets/feb5506a-2a79-4ffa-826b-82ccee927acf)\n\nWhy AgenC\n----------\nIf you're like most people, you use Claude like this:\n\n![](readme-images/common-ai-workflow.png)\n\nMuch better is John Rush's philosophy of [Inputs, Not Outputs](https://www.john-rush.com/posts/ai-20250701.html):\n\n![](readme-images/inputs-not-outputs.png)\n\nEach iteration makes all future outputs better.\n\nBut it doesn't scale.\n\nThe Claudes step on each other, you end up spawning heaps of side Claude windows, juggling the windows becomes a circus, and it's easy to forget what you even started working on.\n\nAgenC tames this chaos. It provides:\n\n- 📦 Claude session isolation in fully independent sandboxes (no Git worktrees, no merge queue - each agent is completely independent!)\n- 🎨 Session management and command palette + hotkeys so launching new sessions, switching windows, stopping/resuming sessions, and rolling lessons back into your Claude config is a thought away\n- 🔧 Palette customization so your top-used operations are easy\n\u003c!-- - 🔁 Cron jobs so your factory can work while you're away --\u003e\n- 🔐 1Password secrets injection\n- 🤖 An AI assistant that knows how to configure \u0026 drive AgenC so you never have to use CLI commands\n\n![](readme-images/agenc-scale-up.png)\n\nAnd of course, AgenC is built with AgenC.\n\n\u003e ### ⚠️ **ADDICTION WARNING** ⚠️\n\u003e\n\u003e AgenC feels great to use, like [painting with your mind](https://mieubrisse.substack.com/p/be-rembrandt). But you should know it has a videogame-like addictive quality.\n\u003e\n\u003e Because it's so easy launch work, you get a \"just one more mission\" feeling.\n\u003e \n\u003e I noticed while building AgenC that it's hard to switch off and go to sleep. My brain would always be buzzing with ideas, and I'd wake up in the middle of the night wanting to launch new work.\n\u003e\n\u003e Please remember to take breaks and leave sufficient wind-down time before sleep!\n\nQuickstart\n-----------\n\n### Prerequisites\n\n- **MacOS** (for now)\n- **Claude Code** installed and in your PATH\n\n### Install\n\n```bash\nbrew tap mieubrisse/agenc\nbrew install agenc\n```\n\nThis automatically installs required dependencies (`gh`, `fzf`, `tmux`).\n\nIf you're not logged in to `gh`, use:\n\n```\ngh auth login\n```\n\n### 1. 🔧 Initialize\nThe AgenC directory defaults to `~/.agenc`. Override with `AGENC_DIRPATH` if needed.\n\nRun the following and answer the prompts:\n\n```bash\nagenc config init\n```\n\nI recommend \"yes\" to creating a config repo; AgenC will sync it to GitHub automatically.\n\nThe AgenC interface is tmux. Run this so you get the AgenC keybindings:\n\n```bash\nagenc tmux inject\n```\n\nIf you haven't used tmux before, here's a starter `~/.tmux.conf`:\n\n```tmux\nset -g extended-keys on\n\n# Ctrl-h goes to previous window\nbind -n C-h previous-window\n\n# Ctrl-l goes to next window\nbind -n C-l next-window\n\n# Ctrl-; toggles between panes inside a window\nbind -n 'C-;' select-pane -t :.+\n\n# Ctrl-shift-h moves a window to the left\nbind -n C-S-h swap-window -t -1\\; select-window -t -1\n\n# Ctrl-shift-l moves a window to the right\nbind -n C-S-l swap-window -t +1\\; select-window -t +1\n```\n\n### 2. 🚀 Launch\nAttach to the AgenC tmux interface:\n\n```bash\nagenc attach\n```\n\nYou'll be dropped into the repo selection screen. Select \"Github Repo\" and enter a repo you're working on.\n\nAgenC will clone it, launch a new **mission**, and drop you into Claude to start your work.\n\nMissions are the main primitive of AgenC: disposable self-contained workspaces with a fully independent copy of the Git repo (no merge queue needed - the agents figure it out, just like humans).\n\n### 3. 🎨 Command Palette\nInevitably you'll want to do work on the side while Claude is grinding away.\n\nPress `ctrl-y` to open the command palette and...\n\n- 🐚 Open a side shell in your current mission's workspace (\"Side Shell\" or `ctrl-p`)\n  \u003e 💡 [cmdk](https://github.com/mieubrisse/cmdk) is amazing in the side shell\n- 🚀 Launch a side mission (\"New Mission\" or `ctrl-n`, or \"Side Claude\" or \"Quick Claude\")\n- 🔀 Switch between your running missions (\"Switch Mission\" or `ctrl-m`)\n- 💬 Send me feedback about AgenC!\n\nThese commands are cheap; use them liberally. AgenC is designed to help you manage having 10+ threads going at once.\n\nThe command palette can be configured with custom hotkeys and custom commands.\n\nThe hard way to do this is through the [CLI helpdocs](docs/cli/agenc.md) the `agenc config paletteCommand`. For example, this is to quickly set up a new Github repo:\n\n```\nagenc config paletteCommand add newRepo \\\n    --title \"🆕 New Repo\" \\\n    --command \"agenc mission new \\\n        --blank \\\n        --prompt 'I want to create a new GitHub repository. Please:\n            1) Ask me what the repository name should be and whether I want it public or private\n            2) Create it on GitHub using the gh CLI\n            3) Initialize this blank mission directory as a git repo and set it up to track the newly created GitHub repository.'\"\n```\n\nThe easier way is through the Adjutant.\n\n### 5. 🤖 Adjutant\nAgenC has an AI assistant called Adjutant (\"Adjutant\" on the palette or `ctrl-t` for Side Adjutant) that knows how to configure AgenC, as well as launch and manage missions.\n\nYou _can_ use the `agenc config` commands to configure stuff like palette commands... but now I just talk to the Adjutant for my AgenC configuration needs.\n\n### 6. Mission Management\nYou can see all missions with `agenc mission ls`, and switch between missions with \"Switch Mission\" (`ctrl-m`) on the command palette.\n\nMissions can also be stopped with \"Mission Stop\" (`ctrl-s`) or \"Mission Resume\" on the palette. Since each mission is an isolated workspace, no work is lost.\n\nFull CLI docs: [docs/cli/](docs/cli/)\n\n### 6. 🔐 Secrets\n\nIf you create a `.claude/secrets.env` with [1Password CLI secret references](https://developer.1password.com/docs/cli/secret-references/) in it, AgenC will resolve them on mission launch and inject them into Claude. This is useful for MCP server credentials.\n\nFor example:\n\n.claude/secrets.env:\n```bash\nSUBSTACK_SESSION_TOKEN=\"op://Private/Substack Session Token/credential\"\nSUBSTACK_USER_ID=\"op://Private/Substack Session Token/username\"\n```\n\n.mcp.json:\n```\n{\n    \"mcpServers\": {\n        \"substack-api\": {\n            \"command\": \"npx\",\n            \"args\": [\"-y\", \"substack-mcp@latest\"],\n            \"env\": {\n                \"SUBSTACK_PUBLICATION_URL\": \"https://mieubrisse.substack.com/\",\n                \"SUBSTACK_SESSION_TOKEN\": \"$SUBSTACK_SESSION_TOKEN\",\n                \"SUBSTACK_USER_ID\": \"$SUBSTACK_USER_ID\"\n            }\n        }\n    }\n}\n```\n\n\u003c!--\n### 7. 🔁 Crons\n\n\u003e ⚠️ Crons only work on MacOS for now!\n\nCrons let your factory work while you're away. AgenC runs scheduled headless missions — think \"generate a daily report at 9am\" or \"take a tech debt cleanup pass at the codebase\" or \"process my inbox every morning\".\n\n**Create a cron job:**\n\nThe easiest way is through the Adjutant. Just ask: \"Create a cron that runs daily at 9am to generate a status report.\"\n\nYou can also use the CLI wizard:\n\n```bash\nagenc cron new daily-report\n```\n\nThe wizard asks for:\n- **Schedule** — Standard cron expression (e.g., `0 9 * * *` for 9am daily)\n- **Prompt** — What you want Claude to do\n- **Git repo** (optional) — Repository to clone into the workspace\n- **Timeout** (optional) — Max runtime (default: 1 hour)\n\n**What happens when a cron runs:**\n\nA headless mission gets spawned at the scheduled time. The mission is a regular mission, and runs in isolation with its own workspace like normal. Output is captured to a log file with automatic rotation.\n\n**View cron jobs:**\n\n```bash\nagenc cron ls\n```\n\nShows all crons with their schedules, enabled status, last run time, and next run time.\n\n**View cron output:**\n\n```bash\nagenc cron logs daily-report\n```\n\nShows output from the most recent run. Add `-f` to tail the log in real-time.\n\n**View run history:**\n\n```bash\nagenc cron history daily-report\n```\n\nShows past runs with start time, mission ID, status, and duration.\n\n**Manually trigger a cron:**\n\n```bash\nagenc cron run daily-report\n```\n\nRuns the cron immediately as a headless mission. Useful for testing before committing to a schedule.\n\n**Disable/enable:**\n\n```bash\nagenc cron disable daily-report\nagenc cron enable daily-report\n```\n\n**Delete:**\n\n```bash\nagenc cron rm daily-report\n```\n\n**Cron expressions:**\n\nAgenC uses standard 5-field cron expressions: `minute hour day-of-month month day-of-week`\n\nCommon examples:\n- `0 9 * * *` — 9am every day\n- `0 9 * * 1-5` — 9am weekdays (Monday-Friday)\n- `0 0 * * SUN` — Midnight on Sundays\n- `*/15 * * * *` — Every 15 minutes\n- `0 */4 * * *` — Every 4 hours\n\n**Concurrency and overlap:**\n\nBy default, if a cron is still running when the next scheduled time arrives, the new run is skipped (`overlap: skip`). You can allow concurrent runs by setting `overlap: allow` in your cron config.\n\nAgenC limits concurrent cron missions to 10 by default (configurable via `cronsMaxConcurrent` in `config.yml`). When the limit is reached, new crons are skipped until slots free up.\n--\u003e\n\n### 7. Send feedback\nI'd love to hear from you! To send me feedback you can...\n\n- Use \"Send Feedback\" in the command palette\n- Ask the Adjutant to send feedback\n- Join the Discord using \"Join Discord\" on the command palette or [use this link](https://discord.gg/x9Y8Se4XF3)\n\nTips\n----\n- **When things go wrong, upgrade!** Pop off a new mission and fix the problem: patch the `settings.json`, upgrade the prompt, debug the issue. Missions are cheap; use them liberally. I'm often juggling 6-8 missions at any given time.\n\n- **Run Claude in sandbox mode.** This cuts a lot of permission request fatigue. Run `/sandbox` once from vanilla Claude (not inside AgenC) to enable sandboxed command execution. This allows Claude to run commands without manual approval prompts on every action. The setting automatically carries into every new AgenC mission (or if you want to upgrade an existing Mission, do \"Reconfig Mission\" → \"Reload Mission\"). This is the recommended alternative to `--dangerously-skip-permissions`.\n\n- **Paint, don't code.** Think in Bezos' Type 1 / Type 2 terms: Type 1 decisions are hard to reverse (security, data loss, architecture); Type 2 are easily undone (most implementation details). Act like a lightly-technical PM - set your guardrails in `settings.json` and `CLAUDE.md`, then let the agent make Type 2 decisions freely. Review outcomes, not every character. When something goes wrong, roll the lessons back into your config. Be okay with manageable messes; you can clean up WAY faster now.\n\n- **Commit \u0026 push after every turn.** By default my agents commit after every turn, and also push to `main` for repos where I'm the only owner. Branches are for Type 1 decisions only. This occasionally causes some problems... but it's net SO much faster. And when your agents do dumb stuff, roll the lessons back into the Claude config so they get smarter.\n\n- **Rename missions when you stop them.** Use `/rename` inside Claude to give a mission a descriptive name before exiting. This makes finding and resuming the right mission much easier later when you run \"Resume Mission\".\n\n\nHow It Works\n------------\n\n![](readme-images/architecture.png)\n\nAgenC runs several cooperating components that work together to give you a factory of Claudes:\n\n### Missions\n\nA **mission** is AgenC's core primitive — a fully isolated workspace where one Claude works on one task.\n\nWhen you create a mission, AgenC:\n\n1. **Clones a full copy of your Git repo** into `$AGENC_DIRPATH/missions/\u003cuuid\u003e/agent/`. This is NOT a Git worktree — it's a complete independent clone. This means no merge queue, no conflicts with other missions, and no shared state. Each Claude has its own sandbox.\n\n2. **Builds a custom Claude config** by copying your global `~/.claude` config and injecting AgenC-specific niceties (e.g. skip the \"Trust this project?\" prompt).\n\n3. **Spawns a wrapper process** that supervises the Claude session. The wrapper handles authentication, tracks mission health, and can restart Claude if needed.\n\nMissions are disposable. You can stop them, resume them, or archive them. Work persists because each mission is a real Git repo — commit and push like normal.\n\n### Wrapper\n\nThe **wrapper** is a supervisor process — one per active mission — that tends the Claude child process.\n\nThe wrapper:\n\n- **Passes authentication** to Claude via the `CLAUDE_CODE_OAUTH_TOKEN` environment variable (more below)\n- **Tracks idle state** by listening to hooks that fire when Claude starts and stops responding\n- **Writes heartbeats** to the database every 30 seconds so the daemon knows which missions are alive\n- **Restarts Claude** on command (via unix socket) — useful after upgrading Claude config or when something breaks\n- **Updates the repo library** immediately when you push, so new missions get your changes without waiting\n\nWhen Claude exits (naturally or via `/exit`), the wrapper cleans up and stops. The mission directory stays intact, so you can resume later.\n\n### Daemon\n\nThe **daemon** is a background process that keeps the factory running smoothly. It runs six concurrent loops:\n\n1. **Repo sync** (every 60 seconds) — Fetches and fast-forwards repos in the shared library so new missions clone from fresh code without needing to run a slow `git clone`\n2. **Config auto-commit** (every 10 minutes) — If your `$AGENC_DIRPATH/config/` is a Git repo, the daemon auto-commits and pushes changes to Github so your config stays version-controlled\n\u003c!-- 3. **Cron scheduler** (every 60 seconds) — Spawns headless missions on schedule for recurring tasks --\u003e\n4. **Config watcher** (on file change) — Watches `~/.claude` and mirrors changes to a shadow repo so missions can inherit your latest config\n5. **Keybindings writer** (every 5 minutes) — Regenerates tmux keybindings to pick up any palette command changes\n\nThe daemon starts automatically when you run most `agenc` commands. If it crashes, just restart it with `agenc daemon restart` - running missions are unaffected.\n\n### Repo Library\n\nAgenC maintains a **repo library** of Git repos at `$AGENC_DIRPATH/repos/`. When you create a mission, AgenC copies from this library instead of cloning from GitHub every time so that new don't require cloning from Github.\n\nThe daemon keeps the library fresh by fetching every 60 seconds. The wrapper contributes by watching for pushes: when you `git push` from a mission, the wrapper immediately updates the library copy so new missions get your changes. Existing missions will notice when they try to merge, same as a human.\n\nMissions cannot read or modify the repo library directly (enforced via permissions). They only see their own workspace.\n\n### Authentication\n\nStandard Claude Code authentication doesn't work well with multiple concurrent sessions because the tokens refresh and invalidate each other in a loop ([GitHub issue](https://github.com/anthropics/claude-code/issues/24317)).\n\nAgenC solves this by using a **long-lived OAuth token** that you provide once during setup. The token is stored at `$AGENC_DIRPATH/cache/oauth-token` (mode 600, never committed to Git). When the wrapper spawns Claude, it reads this file and passes the token via the `CLAUDE_CODE_OAUTH_TOKEN` environment variable.\n\nAll missions share the same token, so there's no refresh thrashing. When the token expires, update it once with `agenc config set claudeCodeOAuthToken \u003cnew-token\u003e`, and all new missions (plus running missions after restart) pick it up automatically.\n\nThe only downside I haven't yet figured out is these Claude tokens can't query usage, so the `/usage` command won't work in AgenC Claudes. You'll need to drop down to vanilla Claude to check your usage.\n\nConfiguration\n-------------\n\nAgenC stores its state in `$AGENC_DIRPATH` (defaults to `~/.agenc`). The central configuration file is `$AGENC_DIRPATH/config/config.yml`.\n\nKey features:\n\n- **Synced repos** — keep repositories continuously up-to-date in a shared library\n\u003c!-- - **Cron jobs** — spawn headless missions on a schedule --\u003e\n- **Palette commands** — customize the tmux command palette and keybindings\n- **Config auto-sync** — optionally back the config directory with Git for automatic versioning\n\nSee [docs/configuration.md](docs/configuration.md) for the full reference.\n\nTroubleshooting\n---------------\n\nRun `agenc doctor` to check for common configuration issues.\n\n### \"Command Line Tools are too outdated\"\n\nIf you see this error during installation:\n\n```\nError: Your Command Line Tools are too outdated.\n```\n\nThis is a [Homebrew requirement](https://docs.brew.sh/Common-Issues#homebrew-is-slow), not an AgenC issue. Homebrew requires up-to-date Xcode Command Line Tools to function, even when installing pre-built binaries.\n\nTo fix, update your Command Line Tools:\n\n```\nxcode-select --install\n```\n\nIf that doesn't work, remove and reinstall:\n\n```\nsudo rm -rf /Library/Developer/CommandLineTools\nxcode-select --install\n```\n\nThen retry `brew install agenc`.\n\nUninstall\n---------\n\n```\nagenc tmux uninject\nagenc mission nuke -f\nagenc daemon stop\nbrew uninstall agenc\n```\n\nThis stops the agenc daemon and removes all mission assets. To remove the AgenC data directory itself:\n\n```\nrm -rf ~/.agenc\n```\n\nIf you customized `AGENC_DIRPATH`, remove that directory instead.\n\nDevelopment\n-----------\nClone the repo and run `make build`.\n\nCLI Reference\n-------------\nRun `agenc --help` for available commands, or see [docs/cli/](docs/cli/) for complete documentation.\n\n\u003c!--\nTheory\n------\n\nAn AI agent is a probabilistic function. It takes input - context, instructions, tools - and produces a good output some percentage of the time. Not 100%. Never 100%. That's the fundamental constraint of the medium.\n\nThis is what makes AI agents different from traditional software. A well-written function returns the correct result every time. An AI agent returns a *useful* result most of the time, and the exact threshold depends on how well you've tuned it.\n\nYour organization is a function too - composed of these agent functions. You have a coding agent, an email agent, a writing agent. Each is a probabilistic function with its own success rate. The org's overall capability is bounded by its weakest agents and degraded by uncertainty compounding across them.\n\nThis is what it means to \"program an organization.\" The industrial capitalists could only approximate it - writing policies, training workers, hoping the message got through. You can do it precisely: adjust a prompt, add a permission, provide a better example. The agent updates immediately. The org function improves.\n\nThe key insight is that refining the outer function means refining the inner functions. Every time an agent misbehaves, that's signal. Capture it in the agent's config, and you've permanently raised its success rate. Do this systematically across all your agents, and the organization compounds in capability rather than in error.\n--\u003e\n\nVs Gastown\n----------\nGastown is a fascinating idea that gave me the push to finally build AgenC, and Steve Yegge sees far beyond the horizon of what we mere mortals see.\n\nParticular things I liked:\n- The Polecat handoff feature, and the idea that \"if the session compacts, that's an error\"\n- Tmux as the interface\n- Inter-agent mail\n- Persistent tracking of work + dependencies with Beads aligns closely with [Fractal Outcomes](https://github.com/mieubrisse/orgbrain/blob/master/fractal-outcomes.md), a work organization framework I've been developing over the past years and which I think will be a good fit for agents\n\nHowever, I ultimately decided not to use Gastown and build AgenC because...\n\n- **I want less complexity.** Gastown has tons of concepts and moving pieces. I want to spend minimal time debugging the system itself; I just want a HUD with great affordances for managing my work and Claude swarm.\n- **I think learning capture is the future.** I'm [a firm believer in knowledge leverage](https://mieubrisse.substack.com/p/the-leverage-series). Meaning, I want identification of factory friction \u0026 lesson capture to be first-class concepts. Gastown's fixed personas seem less focused on learning and more \"brute-force the PRs until they work\". I don't want to burn a Claude Max subscription in a couple days, and I want my factory to get smarter exponentially.\n- **I think a fully-controlled sandbox is a better architecture for learning.** AgenC works hard to fully control the environment the Claude - snapshotting global Claude config and using full repo clones - so we can enable automatic lesson identification and capture. Gastown uses worktrees, which tie the agents to the central repo and require the Refinery.\n- **I want a work-agnostic factory.** Gastown seems to orient towards doing a bunch of coding on a single repo. But I needed a factory where coding and writing and assistant work are treated the same. Doing this work involves popping across many repos - dotfiles, code repos, writing repos, etc. - which is how AgenC got its \"juggle lots of things\" focus.\n- **I want Claude sessions as cattle, not pets.** Gastown seems to orient around a smaller number of named agents, particularly Polecats and Crew. I prefer tons of missions that are easy to launch, manage, and kill.\n\nIf Gastown is Kubernetes, I think AgenC is Docker. It's not as magic, but there's more control and less chaos.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmieubrisse%2Fagenc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmieubrisse%2Fagenc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmieubrisse%2Fagenc/lists"}