{"id":49575925,"url":"https://github.com/noontide-co/mainbranch","last_synced_at":"2026-05-16T16:05:57.146Z","repository":{"id":355052188,"uuid":"1133734876","full_name":"noontide-co/mainbranch","owner":"noontide-co","description":"Files-first operating system for internet businesses: research, decisions, bets, pushes, and outputs in markdown/git, with an mb CLI and agent workflows that hide the plumbing.","archived":false,"fork":false,"pushed_at":"2026-05-08T06:38:26.000Z","size":2863,"stargazers_count":11,"open_issues_count":11,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-08T06:39:21.646Z","etag":null,"topics":["agent-workflows","ai-agents","business-as-files","claude-code","cli","hermes","markdown","open-source","openclaw","python","skills"],"latest_commit_sha":null,"homepage":"https://skool.com/main","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/noontide-co.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":"SUPPORT.md","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-13T18:45:25.000Z","updated_at":"2026-05-08T06:38:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/noontide-co/mainbranch","commit_stats":null,"previous_names":["noontide-co/mainbranch"],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/noontide-co/mainbranch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noontide-co%2Fmainbranch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noontide-co%2Fmainbranch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noontide-co%2Fmainbranch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noontide-co%2Fmainbranch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/noontide-co","download_url":"https://codeload.github.com/noontide-co/mainbranch/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noontide-co%2Fmainbranch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32917885,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-11T17:09:15.040Z","status":"ssl_error","status_checked_at":"2026-05-11T17:08:45.420Z","response_time":120,"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-workflows","ai-agents","business-as-files","claude-code","cli","hermes","markdown","open-source","openclaw","python","skills"],"created_at":"2026-05-03T17:02:20.753Z","updated_at":"2026-05-12T00:02:16.392Z","avatar_url":"https://github.com/noontide-co.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Main Branch\n\n[![Star on GitHub](https://img.shields.io/github/stars/noontide-co/mainbranch?style=social\u0026label=Star)](https://github.com/noontide-co/mainbranch)\n[![PyPI version](https://img.shields.io/pypi/v/mainbranch?style=flat\u0026label=PyPI)](https://pypi.org/project/mainbranch/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n\n**Durable operating memory for AI-assisted businesses. Ship growth and ops work from files you own.**\n\n---\n\n## Why\n\nEvery SaaS tool gets better with every model update — and raises its prices. Your stuff should get better on your own computer.\n\nYou already feel it. Your offer lives in Notion. Your voice lives in a thousand Loom transcripts. Your audience research is in three Google Docs you can't find. Every chat session with your AI starts from zero — you re-paste, re-explain, re-describe, and the output is still generic. One of our members called it *building on quicksand*. That's the right word.\n\nYou're renting your business. Not just the dashboards — the operational memory itself.\n\nThe open-source gap closed in 2025. The tools to own your stack exist now. Almost nobody has carved time to migrate, because there is no coherent environment that ties it together.\n\nMain Branch is that environment. Your offer, audience, voice, decisions, research, bets, pushes (launches, drops, challenges, promos — whatever your business calls them), meeting notes, fulfillment context, and operating lessons live as markdown files in a git repo you own. The `mb` CLI scaffolds and checks it. The bundled skills read those files and help ship work from what your business already knows.\n\nThe end state isn't sitting at a terminal all day. It's the opposite — eventually you dump thoughts from your phone, drafts get made, finance and fulfillment signals roll up, the team sees what is moving, you approve the risky actions, and the system executes the boring rails. We're not all the way there. The work is still real. But the substrate is the right one to build on.\n\nEvery bet you ship leaves a lesson. The lessons update your offer, your audience, your voice. Your business gets smarter every week — without you having to remember. The agent recommends; you make the call.\n\nWe run our own businesses on this. Inside our Skool community you watch us do it live: shipping offers through `mb`, running real ad accounts, and building the agency on top of it.\n\nOwn the work. Rent only the rails.\n\n---\n\n## What it is\n\nMain Branch is the `mb` CLI plus MIT-licensed agent workflows for running a local-first business operating repo. It's built for operators and small teams running real businesses: solo founders, small agencies, course creators, productized services, indie SaaS, and small ecom teams. Today the workflows ship for Claude Code. Codex, Cursor, OpenClaw, Hermes, and local runtimes are compatibility targets, not supported adapters yet.\n\nThe repo is the operating memory: offer, audience, voice, research, decisions, bets, pushes, logs, documents, meeting summaries, fulfillment notes, safe finance summaries, and provider refs. The CLI is the deterministic control plane: setup, status, validation, graph, provider readiness, updates, checkpoints, and repair. The skills are the judgment layer: research, decide, write, review, ship, and reflect.\n\nMain Branch is opinionated about rails. The point is not to connect every SaaS tool a business has accumulated. The point is to choose boring, inspectable paths: GitHub for durable work threads, proposals, and shipped history; Cloudflare for sites and DNS; provider paths such as Google/Workspace and official ads only where smoke-tested; planned optional rails such as Postiz for social scheduling and Beancount-style plain-text finance; and optional sidecars for enrichment. Those paths should be wrapped in deterministic commands agents can call without wasting tokens guessing provider setup.\n\nRead the product frame in [docs/ETHOS.md](docs/ETHOS.md), the four operator loops (Sense → Decide → Ship → Reflect) and the four channels (Paid, Organic, Pages, Ops) in [docs/OPERATOR-LOOPS.md](docs/OPERATOR-LOOPS.md), and the release direction in [docs/ROADMAP.md](docs/ROADMAP.md).\nWorkspace, repo, dashboard, finance/legal, and team-log boundaries are defined\nin\n[decisions/2026-05-04-workspace-repo-sensitive-data-boundaries.md](decisions/2026-05-04-workspace-repo-sensitive-data-boundaries.md).\nMarkdown/link conventions for GitHub and Obsidian live in\n[docs/markdown-link-conventions.md](docs/markdown-link-conventions.md).\nDependency, integration, sidecar, and provider-adapter choices are recorded in\n[docs/DEPENDENCY-CHOICES.md](docs/DEPENDENCY-CHOICES.md).\n\n---\n\n## Quick start\n\n```bash\npipx install mainbranch\nmb onboard --name \"My Business\" --path my-business\ncd my-business\nclaude\n/mb-start\n```\n\nThat's it. `mb onboard` guides the human setup, creates or connects your business repo, wires Claude Code to the bundled skills, and shows the exact next commands. `mb init` still exists as the quiet scriptable primitive underneath it. `/mb-start` then reads the deterministic status facts, checks whether the repo needs repair or an update, and routes you to setup, thinking, shipping, or closing work.\n\nAfter the first session, the daily flow is:\n\n```bash\ncd /path/to/my-business\nclaude\n/mb-start\n```\n\n`/mb-start` reads `mb status --json --peek` internally, so you do not need to\nrun `mb status` first. Use `mb status` when you want the same deterministic\nbriefing in the terminal without opening Claude Code. If you want `mb` to check\nhandoff readiness and open Claude Code for you, run `mb start --launch` from\nthe business repo.\n\nThe normal day should feel like business work, not GitHub administration:\n\n1. Start in the business repo.\n2. Let `/mb-start` ground Claude in `mb` facts: repo health, status, updates,\n   graph links, provider readiness, and recent activity.\n3. Dump thoughts or pick a next action. Claude should route that input into the\n   right Main Branch primitive: a bet, research note, decision, push, playbook,\n   outcome, log entry, or checkpoint.\n4. Use the skills for judgment-heavy work and `mb` for deterministic checks,\n   repair, validation, graph/status facts, provider readiness, and commits.\n5. Close with `/mb-end` or `mb checkpoint` guidance so the lesson, decision,\n   artifact, or saved work lands in git before the next session.\n\nUnder the hood, Main Branch uses issues, branches, pull requests, commits,\ngraph links, provider refs, and local connection state to preserve and inspect\nprogress. You can inspect those details when you want them, but the default\nlanguage stays closer to the business: bets, goals, offers, pushes, playbooks,\noutcomes, and checkpoints.\n\nYou'll need a Claude Pro ($20/mo) or Max subscription. Install Claude Code itself from [claude.ai](https://claude.ai) — see [docs/BEGINNER-SETUP.md](docs/BEGINNER-SETUP.md) for a step-by-step.\n\nTested on macOS and Linux. Windows is experimental and not part of the CI\nrelease gate; see [docs/compatibility.md](docs/compatibility.md). Power users\non Windows should use WSL2 for the closest supported path.\n\n**New to Claude Code, git, or terminal?** Read [docs/BEGINNER-SETUP.md](docs/BEGINNER-SETUP.md) — it covers everything step-by-step, including common errors.\n\n**Contributors** who want to hack on skills can clone the engine repo directly:\n\n```bash\ngit clone https://github.com/noontide-co/mainbranch.git\n```\n\n---\n\n## What you can do\n\nOnce set up, you can:\n\n- Research topics and document decisions\n- Open, update, close, and narrate business bets\n- Generate batches of ad copy in your voice\n- Create video scripts for Meta ads\n- Generate organic content — Reels, TikTok, carousels — from your core files and research\n- Write VSL scripts for your community\n- Review ads for compliance before you run them\n- Build and deploy Cloudflare-backed landing pages from your core files and research when the repo is connected and readiness checks pass\n- Capture meeting transcripts, source material, and fulfillment notes into durable docs, logs, research, or decisions\n- Close sessions intentionally with crystallize moments\n\nAll of this happens through simple slash commands. No custom prompt engineering required for supported workflows.\n\n---\n\n## How it works\n\nMain Branch has three layers:\n\n- **Your repo is canonical memory.** It holds the durable business truth:\n  core files, research, decisions, bets, pushes, logs, documents, and links to\n  child repos.\n- **`mb` is the deterministic control plane.** It scaffolds, validates, graphs,\n  briefs, repairs, checkpoints, updates, and checks provider readiness.\n- **Skills are the judgment layer.** Claude Code reads repo truth, asks the\n  operator questions, drafts work, reviews it, and routes artifacts back into\n  files.\n\nThe CLI and skills are meant to work together. Skills should call `mb` for\nfacts instead of guessing at repo health, provider setup, or update state. The\nCLI should stay deterministic and scriptable instead of becoming a chat client\nor model host.\n\nYou create a separate folder for YOUR business. That's where your offer,\naudience, voice, proof, operations, research, decisions, bets, pushes, logs, and\ndocuments live. The engine reads those files. Then it helps produce work and\nrecords what changed so the next session starts from the same memory.\n\nAfter running `mb init`, your business repo looks like this:\n\n```\nmy-business/\n├── CLAUDE.md\n├── .gitignore\n├── .github/\n│   └── CODEOWNERS\n├── .mb/\n│   └── schema_version\n├── .claude/\n│   ├── settings.local.json    (gitignored — wires Claude Code to bundled skills)\n│   └── skills/                (gitignored — bridge symlinks)\n├── core/\n│   ├── vocabulary.md\n│   ├── offers/\n│   ├── proof/\n│   ├── brand/\n│   ├── strategy/\n│   ├── operations/\n│   └── finance/\n├── research/\n├── decisions/\n├── bets/\n├── log/\n├── pushes/\n├── campaigns/                 # legacy compatibility read only\n└── documents/\n```\n\nYou fill in the durable business files inside `core/`. Claude reads them when generating.\nOld repos may still have `campaigns/`; `mb` reads it for compatibility, but\nnew coordinated work belongs in `pushes/`.\n\nAs a business grows, related work can graduate into child repos: sites,\nproducts/offers, client fulfillment repos, private finance repos, or ops repos.\nThe business repo stays the hub. Future dashboard work should map those repos\nand their pushes, bets, commits, issues, PRs, checkpoints, provider-safe\nsummaries, and active decisions. The dashboard is the map, not the source of\ntruth.\n\n### Connected accounts live with the business repo\n\nYour business repo carries the boundaries for connected accounts. A repo for\none business can point at one Stripe account, Google Ads customer, ad pixel set,\nand MCP server set; a different business repo should point at different ones.\nSwitching repos should switch the tools that can spend money, publish, email,\nor mutate customer accounts.\n\nThe repo should keep useful non-secret identifiers where agents can inspect\nthem: Stripe account/product/price IDs in offer or finance notes, Google Ads\ncustomer and campaign IDs (provider's term for their object) in\n`pushes/\u003cpush\u003e/push.md` `provider_refs:`, ad pixel IDs beside the site or\npush files they belong to, and MCP server names/scopes in `CLAUDE.md` or\nlocal setup notes. Do not commit API keys, OAuth refresh tokens,\nservice-account JSON, webhook secrets, MCP tokens, or bearer tokens. Keep\nsecrets in a runtime's local config, the OS keychain, 1Password, `.env`, or\n`.claude/settings.local.json`, and keep those files gitignored.\n\n---\n\n## The `mb` CLI\n\nThe CLI surface for the engine. Built for Claude Code first; runtime-agnostic by design. Most workflows still happen via slash-prompt skills inside Claude Code today — the `mb` CLI is the scaffolder, validator, grapher, updater, and future adapter layer around them.\n\n| Command | What it does |\n|---|---|\n| `mb onboard` | Human setup flow: create or connect a business repo, explain the substrate, wire Claude Code skills, and show the next `/mb-start` step. |\n| `mb onboard status` | Show durable onboarding progress from `.mb/onboarding.json`, including missing core-reference inputs and the next recommended action. |\n| `mb init` | Set up a fresh business repo (business folders, CLAUDE.md, git init). |\n| `mb status` | Show the local-first briefing in the terminal without opening Claude Code: ranked next actions, since-last-check changes, drift, repo health, runtime wiring, recent decisions/research/bets/git activity, and GitHub tasks/proposals when `gh` is authenticated. Use `--json` for the v1 status schema, `--verbose` for detail, and `--peek` for non-mutating reads. |\n| `mb doctor` | Check the environment — repo shape, frontmatter sanity, settings on disk. Use `mb doctor repair --plan` / `--apply` for guided repo reconciliation; add `--include-migration` only after reviewing the migration preview. |\n| `mb connect` | Register provider credentials, test provider health, and inspect repair-safe integration status without committing secrets. |\n| `mb site check` | Check local paid-traffic measurement readiness for a site repo: GTM installation, Main Branch dataLayer events, consent posture, Google Ads plan metadata, and operator-review gates. |\n| `mb issue draft` | Create a local, privacy-scrubbed GitHub issue draft under `.mb/issue-drafts/` for bugs, feature gaps, or questions. |\n| `mb issue open` | Submit a reviewed issue draft with `gh issue create`, or print a browser/manual fallback when GitHub CLI is unavailable. |\n| `mb validate` | Frontmatter shape check across `core/`, `research/`, `decisions/`, `bets/`, `log/`, `pushes/` (and legacy `campaigns/` as compatibility), `documents/`. Pass/fail per file. |\n| `mb graph` | Build a repo graph index from frontmatter links, wikilinks, and entity tags. Emits Graphviz DOT by default, `--json` for agents/dashboards, and `--open` to render a PNG view. |\n| `mb similar-bets` | Find similar past bets and offer outcomes from repo truth so new work can learn from old attempts. |\n| `mb checkpoint` | Plan or save a business-readable git checkpoint during long agent runs. |\n| `mb think \u003ctopic\u003e` | Print the `/mb-think` invocation hint. Run inside Claude Code for the full flow. |\n| `mb resolve \u003ckey\u003e` | Resolve a reference key from the curated library, local core files, or bundled stubs. |\n| `mb educational \u003ctopic\u003e` | Print a beginner education topic such as `daily-owner-loop`, `why-mainbranch-not-saas`, `github-vs-gdocs`, `provider-readiness`, `cloudflare-pages`, or `stripe`; also powers longer \"tell me more\" context from setup and doctor prompts. |\n| `mb skill list` | List the skills bundled with this engine. |\n| `mb skill path \u003cname\u003e` | Print the on-disk path to a bundled skill. |\n| `mb skill validate \u003cname\u003e` | Validate one bundled skill's frontmatter, local references, and 500-line gate. Use `--all --json` for CI. |\n| `mb skill link --repo .` | Repair Claude Code skill discovery in a business repo and back up stale or broken Main Branch personal symlinks. |\n| `mb skill repair --repo .` | Detect personal Claude Code skills that shadow Main Branch and explain safe repair. Use `--apply` only for stale Main Branch symlinks or broken links with Main Branch skill names. |\n\nFull list: `mb --help`.\n\nMachine-readable command output follows the additive\n[JSON output contract](docs/json-output-contract.md): high-value `--json`\nsurfaces expose shared `result_envelope_version`, `result_schema`,\n`mb_command`, `ok`, `result_status`, `errors`, `warnings`, and `actions`\nmetadata while preserving their command-specific payload keys.\n\n### Provider Connections\n\n`mb connect` is the local-first foundation for supported, planned, and optional\nprovider rails such as GitHub, Cloudflare, Google, Meta, Postiz, Apify,\nBeancount, and transcription providers.\nUse `mb connect plan` when you are not sure what to connect first; it explains\nGitHub, Cloudflare, Google/Workspace, Meta Ads, and Apify as numbered business\nchoices with the current readiness state and exact next command.\n\nBeginner education topics explain why these rails exist before asking you to\nconfigure them:\n\n```bash\nmb educational daily-owner-loop\nmb educational why-mainbranch-not-saas\nmb educational provider-readiness\nmb educational cloudflare-pages\nmb educational beancount\nmb educational cal-com\nmb educational stripe\nmb educational forgejo\nmb educational cursor\n```\n\nCommon provider-readiness commands:\n\n```bash\nmb connect plan\nmb connect list\nprintf '%s' \"$CLOUDFLARE_API_TOKEN\" | mb connect cloudflare --token-stdin --metadata token_type=account --metadata account_id=...\nmb connect test cloudflare\nmb connect doctor\nmb connect status --json\nmb educational provider-readiness\n```\n\nSecrets are stored outside the business repo, using the macOS Keychain when\navailable and a local `~/.mainbranch/secrets/connect.json` fallback otherwise.\nThe business repo only receives non-sensitive, gitignored metadata in\n`.mb/connect.yaml`, such as the provider id, account label, credential backend,\naccount-token type, and last check time.\nStored credentials start as `unvalidated` until `mb connect test \u003cprovider\u003e`\nruns the safest available check. Providers with a safe API probe validate\nagainst the provider; providers without one record that local credential\npresence was confirmed and that no automated probe exists yet. A secret ref\nalone is never reported as healthy.\n`mb connect status --json` and `mb connect doctor --json` include safe repair\nfields such as `state`, `summary`, `repair`, `repair_command`, and\n`safe_to_share` for onboarding agents. Skills and future dashboards should read\nthose JSON commands or `.mb/connect.yaml`; they should never ask users to commit\ntokens.\n`--from-env` is explicit: `mb connect` does not silently import general-purpose\nenvironment variables.\n\n---\n\n## Skills\n\nSkills are pre-built workflows you invoke with slash prompts. Instead of figuring out how to prompt Claude, you type `/mb-ads` and Claude knows exactly what to do — reads your business files, then generates output that matches your voice.\n\nThe supported Claude Code contract is project-local skill discovery through the\nbusiness repo's `.claude/skills/mb-*` bridge links. Plain `/mb-start` is the\ndaily entrypoint; extra text after it is treated as normal instruction, not a\nstable `$ARGUMENTS` command API. See\n[docs/claude-code-invocation-contract.md](docs/claude-code-invocation-contract.md).\n\nSome skills ship growth work. Others maintain operating memory. `/mb-start`,\n`/mb-status`, `/mb-think`, `/mb-bet`, `/mb-end`, `mb checkpoint`, `mb graph`,\nand `mb connect` are as important as the content skills because they keep the\nrepo understandable, current, and safe to operate from.\n\n| Skill | What it does |\n|---|---|\n| `/mb-start` | Main entry point — figures out what you need and routes you there |\n| `/mb-status` | Thin Claude Code wrapper over `mb status --json --peek` for daily briefing facts and ranked next actions |\n| `/mb-setup` | Set up your business repo (run this first if you're new) |\n| `/mb-think` | Research, make decisions, add context, transcribe local recordings, update durable business files |\n| `/mb-bet` | Open, update, close, list, and narrate business bets |\n| `/mb-ads` | Create ad copy (static or video) and review for compliance |\n| `/mb-vsl` | Write video sales letter scripts (Skool or B2B) |\n| `/mb-organic` | Generate organic content — Reels, TikTok, carousels |\n| `/mb-site` | Generate and deploy landing pages from your core files and research |\n| `/mb-wiki` | Personal wiki with atomic notes |\n| `/mb-end` | Close session — summary, crystallize, approved checkpoint guidance |\n| `/mb-help` | Get answers, troubleshoot, learn the system |\n| `/mb-update` | Update Main Branch — delegates install-mode refresh to `mb update` and summarizes what's new |\n| `/mb-pull` | Legacy alias for `/mb-update` |\n\n---\n\n## Honest Current State\n\n- **Built for Claude Code today.** `mb` is runtime-agnostic by design, but Claude Code is the only first-class runtime currently supported end to end.\n- **The terminal front door is live.** Bare `mb`, `mb onboard`, `mb status`, `mb start`, and `mb update` are in the public package.\n- **Packaged callers can use the CLI directly.** Paperclip-style routines, local scripts, and future adapters should invoke deterministic `mb` commands against an explicit business repo path and read JSON/exit codes. See [docs/compatibility.md](docs/compatibility.md).\n- **Growth is the strongest shipped wedge.** Ads, organic, VSLs, sites, bets, pushes, status, and checkpoints are the most developed public workflows.\n- **Ops is the expansion path.** Meetings, fulfillment, bookkeeping/P\u0026L, team daily logs, repo topology, and dashboard views use the same memory model, but they are less shipped than the growth surfaces.\n- **Provider automation is curated and gated.** GitHub and Cloudflare paths are the most concrete today. Google/Workspace, Meta Ads, Google Ads/GTM, Postiz, Apify, Beancount, and transcription are wired as planned or optional provider/sidecar surfaces until each path has matching smoke evidence for the claimed surface.\n- **Schema is v1; will evolve.** Frontmatter shapes covered by `mb validate` are stable for the current major; breaking changes bump the major.\n- **Runtime compatibility is still ahead.** Codex, Cursor, OpenClaw, Hermes, and local LLMs are roadmap targets, not supported adapters yet.\n\n| Runtime | Status | Notes |\n|---|---|---|\n| Claude Code | Supported today | First-class adapter with skill wiring, repair, and smoke-tested first-run flow. |\n| Codex | Roadmap | Target runtime; no public adapter support claim yet. |\n| Cursor | Roadmap | Target runtime; no public adapter support claim yet. |\n| OpenClaw | Roadmap | First-tier compatibility target because users operate there; no adapter support claim yet. |\n| Hermes | Roadmap | Target runtime/memory surface; no public adapter support claim yet. |\n| Paperclip-adjacent orchestration | Roadmap | Target orchestration layer; should supervise shipped `mb` CLI/JSON commands without assuming Claude Code skills are present. |\n| Local runtimes | Roadmap | Long-range endpoint once adapter contracts are proven. |\n\nFor the package/runtime caller contract, repo-path discovery rules, and the\nadapter/readiness map across invocation, workflow discovery, routing,\nautomation, observability, and packaging, see\n[docs/compatibility.md](docs/compatibility.md).\n\nThe engine v0.1.0 decision lives at [`decisions/2026-04-29-mb-vip-v0-1-0-master.md`](decisions/2026-04-29-mb-vip-v0-1-0-master.md). Some historical planning happened in private Noontide repos; public product truth now lives in this repository's decisions, docs, issues, changelog, and releases.\n\n---\n\n## Roadmap\n\nThe current package is the CLI + Claude Code first-run foundation plus the first daily operating surfaces: `mb status`, `/mb-status`, next-action ranking, bets, pushes, checkpoints, provider readiness, site checks, and privacy-safe issue drafting. Next work keeps tightening those loops, expands the curated provider rails, and prepares the future dashboard as a map over repo truth rather than a replacement for it. See [docs/ROADMAP.md](docs/ROADMAP.md) for the public roadmap and the current GitHub issue anchors. Direction, not promises.\n\nThe proposed long-range product direction is captured in\n[`decisions/2026-05-02-github-native-business-os.md`](decisions/2026-05-02-github-native-business-os.md):\nMain Branch as a GitHub-native business operating system, with `mb` as the\ncontrol plane, GitHub as the team layer, graph/structured data as the\nintelligence layer, and agent runtimes as execution.\n\n- **v0.3.x: Tightens the daily operating loop.** Status/ranking, `/mb-start`, `/mb-status`, doctor repair, checkpoints, pushes, provider readiness, and issue drafting keep becoming clearer and more reliable.\n- **v0.4: Bets and pushes become operating systems.** Stronger links between bets, offers, pages, ads, outcomes, fulfillment, Ops, and public narration.\n- **Longer range.** Runtime adapters, dashboard/server mode, repo topology, structured data, deeper Ops surfaces (meetings, books, P\u0026L, compliance), and richer Paid, Organic, and Pages workflows.\n\nSee [CHANGELOG.md](CHANGELOG.md) for what's in this release. Each release ships a \"What this means for you\" plain-English section above the technical detail.\n\n---\n\n## Open source vs paid community\n\nPlain English boundary so nobody is surprised:\n\n- **Open-source (free, MIT)**: the `mb` CLI, bundled skills, schema, framework, docs, and future local dashboard surface when it ships. The engine is usable without joining the paid community.\n- **Paid community (Skool)**: Want to watch us build companies live with Main Branch? Free for 7 days, $19/mo after. The community can include live narration, calls, support, and curated examples that are not required for the open-source engine.\n\nMain Branch is usable on its own. The paid community is the live narration and support layer on top.\n\n---\n\n## Updating\n\n- **Normal user path**: run `/mb-update` inside Claude Code. It figures out\n  which install you have and runs the right thing.\n- **Power user CLI path**: `mb update --repo .` from your business repo.\n- **Clone (developer mode)**: `git pull origin main` from the engine repo.\n\n`/mb-start` checks for important updates at the beginning of a session and will\ntell you when updating matters. The CHANGELOG entry for the new version\nsurfaces as a banner the next time you run `/mb-start`.\n\n---\n\n## FAQ\n\n**Do I need to know how to code?**\nNo. You invoke skills with slash prompts and answer questions.\n\n**What if I have multiple products under one brand?**\nUse one repo with an `offers/` folder when the products share the same brand,\nteam, voice, and access boundary. Each offer gets its own `offer.md`. If an\noffer graduates into its own team, provider accounts, site, finance boundary,\nor operating history, move it into its own repo and keep the company repo as a\nhub.\n\n**What's a bet vs. an offer?**\nA bet is a time-boxed operating hypothesis: what you'll try, why, by when, and how you'll know if it worked. An offer is a durable thing you sell. A good bet can graduate into an offer, push, workflow, content pillar, or decision; a bad bet gets closed with learning.\n\n**What if I have multiple separate businesses?**\nCreate a separate repo for each brand, legal entity, provider-account boundary,\nor team-access boundary. If businesses truly share the same voice, team, and\naccess rules, they can share a repo. If not, separate repos.\n\n**How do I update when new skills come out?**\nRun `/mb-update` inside Claude Code. Power users can run `mb update --repo .`\nfrom the business repo.\n\nIf `mb --version` still says `0.1.x`, ask Claude to help bootstrap the update.\nThe fallback is `pipx upgrade mainbranch` once before using `mb update`; old\ninstalls now surface this as an in-product \"Update required\" alert on the main\nlaunch, doctor, status, and start surfaces. Existing business repos should then\nbe repaired with `mb skill link --repo .`, `mb skill repair --repo .`, and\n`mb doctor` from the repo root. See [docs/MIGRATING.md](docs/MIGRATING.md) for\nthe old-repo path.\n`/mb-pull` still works as a legacy alias, but new docs teach `/mb-update`.\n\n**Can Claude migrate an old setup for me?**\nYes. Start Claude Code anywhere and paste the prompt in\n[docs/MIGRATING.md](docs/MIGRATING.md#recommended-let-claude-walk-you-through-it).\nClaude should inspect first, update Main Branch through `/mb-update` or\n`mb update`, recommend one repo at a time, and ask before applying repairs or\nlayout migrations.\n\n**Can I edit the skills?**\nYou can, but you don't need to. They're designed to work out of the box.\n\n**What makes this different from ChatGPT?**\nChatGPT is a chat surface that resets between sessions. Main Branch is a CLI plus a skill set that reads files Claude can re-read every session — your offer, audience, voice, decisions, research, and bets — so outputs stay consistent with your business instead of restarting from zero.\n\n**I'm stuck. What do I do?**\nType `/mb-start` again. It picks up where you left off.\n\n---\n\n## Help\n\n**In the Skool community:** post in the Main Branch group. Tag @Devon for technical questions.\n\n**Not in the Skool community?** Open an issue at [github.com/noontide-co/mainbranch/issues](https://github.com/noontide-co/mainbranch/issues).\n\nFor platform support and security reporting, see [SUPPORT.md](SUPPORT.md), [SECURITY.md](SECURITY.md), and [docs/compatibility.md](docs/compatibility.md).\n\n**Common issues:**\n\n- \"404 error\" or \"Repository not found\" — verify the URL and your network. The repo is public; no access request needed.\n- \"Claude doesn't see my files\" — make sure you started Claude in your business repo folder and ran `/mb-start`.\n- \"Skills aren't working\" — run `mb skill link --repo .` from your business repo to repair bridge symlinks and known stale Main Branch shadows, then restart Claude. If still broken, run `mb skill repair --repo .` to inspect unresolved personal-skill conflicts or run `/mb-setup`.\n- \"Output sounds generic\" — add more detail to your core files, especially `core/voice.md`.\n- \"I edited Main Branch but can't push\" — that's expected for most users. Main Branch is the shared engine. Your business data goes in YOUR repo.\n\n**Turn friction into a public issue:** run `mb issue draft bug --command \"mb doctor\" --what-happened \"...\"` from your business repo. Review the local draft under `.mb/issue-drafts/`, then run `mb issue open \u003cdraft\u003e --yes` when it is safe to submit. See [docs/issue-drafting.md](docs/issue-drafting.md).\n\n---\n\n## Technical details\n\nContributors should start with [AGENTS.md](AGENTS.md) and\n[CONTRIBUTING.md](CONTRIBUTING.md). Claude Code-specific repo guidance lives in\n[CLAUDE.md](CLAUDE.md). You don't need any of these to get started as a user.\n\nAll shipping decisions are dated, versioned, and committed alongside the code that implements them.\n\n---\n\n## Community\n\n[skool.com/main](https://skool.com/main)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoontide-co%2Fmainbranch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnoontide-co%2Fmainbranch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoontide-co%2Fmainbranch/lists"}