{"id":48620428,"url":"https://github.com/greenpill-dev-guild/coop","last_synced_at":"2026-04-09T03:34:25.016Z","repository":{"id":339885355,"uuid":"1163638250","full_name":"greenpill-dev-guild/coop","owner":"greenpill-dev-guild","description":"A local privacy focused AI agent for enabling community coordination, knowledge sharing, impact reporting and capital formation at a local regenerative and civic level.","archived":false,"fork":false,"pushed_at":"2026-04-06T08:46:49.000Z","size":24813,"stargazers_count":2,"open_issues_count":9,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-06T09:32:32.315Z","etag":null,"topics":["browser-extension","collaboration","collective-intelligence","coordination","crdt","ethereum","filecoin","governance","impact-reports","knowledge-commons","knowledge-garden","knowledge-sharing","local-first","p2p","react","regen-coordination","shared-memory","transformersjs","webllm","yjs"],"latest_commit_sha":null,"homepage":"https://coop.town","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/greenpill-dev-guild.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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},"funding":{"github":["greenpill-dev-guild"],"custom":[{"url":"https://explorer.gitcoin.co/#/projects/0x4f354435756ee1c1ea18402a559874cd2bb918ad795b7e361e1257425e57a7de","label":"Gitcoin"},{"url":"https://giveth.io/project/greenpill-dev-guild","label":"Giveth"}]}},"created_at":"2026-02-21T23:16:49.000Z","updated_at":"2026-04-06T07:53:06.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/greenpill-dev-guild/coop","commit_stats":null,"previous_names":["regen-coordination/coop","greenpill-dev-guild/coop"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/greenpill-dev-guild/coop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greenpill-dev-guild%2Fcoop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greenpill-dev-guild%2Fcoop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greenpill-dev-guild%2Fcoop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greenpill-dev-guild%2Fcoop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/greenpill-dev-guild","download_url":"https://codeload.github.com/greenpill-dev-guild/coop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greenpill-dev-guild%2Fcoop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31584706,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"online","status_checked_at":"2026-04-09T02:00:06.848Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["browser-extension","collaboration","collective-intelligence","coordination","crdt","ethereum","filecoin","governance","impact-reports","knowledge-commons","knowledge-garden","knowledge-sharing","local-first","p2p","react","regen-coordination","shared-memory","transformersjs","webllm","yjs"],"created_at":"2026-04-09T03:34:24.315Z","updated_at":"2026-04-09T03:34:25.008Z","avatar_url":"https://github.com/greenpill-dev-guild.png","language":"TypeScript","funding_links":["https://github.com/sponsors/greenpill-dev-guild",{"url":"https://explorer.gitcoin.co/#/projects/0x4f354435756ee1c1ea18402a559874cd2bb918ad795b7e361e1257425e57a7de","label":"Gitcoin"},{"url":"https://giveth.io/project/greenpill-dev-guild","label":"Giveth"}],"categories":[],"sub_categories":[],"readme":"# Coop\n\n![Coop No more Chickens running loose](https://media.discordapp.net/attachments/1334366927094677575/1483276398956118127/signal-2026-03-11-173838.png?ex=69ba004b\u0026is=69b8aecb\u0026hm=f30d70ad2b2baa3c187601210d55b7a80b89a1e5b4cd9406b45f2f6105535d73\u0026=\u0026format=webp\u0026quality=lossless\u0026width=2240\u0026height=298)\n\n**A browser-first, local-first extension and companion receiver PWA for turning scattered knowledge into reviewed, shared coop memory.**\n\nCoop helps groups capture what would otherwise get lost -- open tabs, voice memos, photos, files,\nand links -- then review, refine, and publish what matters. The extension is the main product\nsurface. The companion PWA handles mobile and secondary-device capture. Core capture, review, local\nAI refinement, and private intake stay in the browser. The repo also includes a small signaling/API\nlayer for peer discovery and optional Yjs document sync.\n\nA coop is Coop's shared group workspace and memory layer: the place where reviewed drafts, published\nartifacts, board views, and proof material become visible to members.\n\nToday, Coop is strongest as a mock-first staged-launch product: browser capture and review are\nimplemented, receiver pairing and private intake sync are implemented, local AI refinement is\nimplemented, and shared coop publishing is implemented. Live Safe, live archive delegation, and\nlive session-capability rails exist as separate second-gate or operator flows rather than the\ndefault public posture.\n\n## Current Status\n\nAs of March 28, 2026:\n\n- the automated mock-first staged-launch bar is green\n- Coop is documentable and demoable in its current mock-first posture\n- the remaining public-release blocker is manual real-Chrome confirmation of popup `Capture Tab`\n  and `Screenshot` success paths\n- live Safe, archive, and session-capability rails remain a separate second gate\n\nCurrent release references:\n\n- [Current Release Status](docs/reference/current-release-status.md)\n- [Testing \u0026 Validation](docs/reference/testing-and-validation.md)\n- [Demo \u0026 Deploy Runbook](docs/reference/demo-and-deploy-runbook.md)\n- [Live Rails Operator Runbook](docs/reference/live-rails-operator-runbook.md)\n\n## How It Works\n\n1. **Capture** -- Round up browser tabs with a shortcut in the extension. Record audio, snap\n   photos, attach files, or share links from your phone through the companion receiver PWA.\n2. **Refine** -- A local in-browser agent and inference cascade help turn captures into candidates,\n   drafts, and next steps. Refinement runs locally in the browser through WebGPU/WASM/heuristic\n   tiers rather than a hosted inference backend.\n3. **Review** -- Members review candidates and drafts in the popup and `Chickens` before anything\n   becomes shared coop state.\n4. **Share** -- Publish reviewed drafts into a coop -- the group's shared workspace and memory\n   layer -- sync them through Coop's local-first Yjs layer, open board and proof views, and export\n   archive or proof material. Onchain, live archive, and operator execution flows remain mode-gated\n   rather than default public behavior.\n\n## Main Surfaces\n\nIn the current product:\n\n- `Popup` handles quick capture, quick review, create/join flows, and feed access\n- `Chickens` handles the working queue for candidates, drafts, and publish prep\n- `Coops` handles shared coop state, board/proof access, and archive-related actions\n- `Roost` is the Green Goods member workspace in the current UI\n- `Nest` handles members, receiver pairing, operator controls, and settings\n- `Receiver` is the mobile and secondary-device capture surface\n\nThe older product story still uses \"Roost\" as the metaphor for human judgment. In the live UI,\ngeneral review work now lives primarily in `Popup` and `Chickens`, while `Roost` is reserved for\nGreen Goods member actions.\n\n## Use Cases\n\n- **Community coordination groups** -- Bioregional networks, regen communities, and contributor\n  circles can pool knowledge across members without centralizing raw context on a single platform.\n- **Research and grant teams** -- Capture evidence across many sources, refine it locally, and turn\n  the strongest leads into reviewed drafts and coop memory.\n- **Capital formation and evidence packaging** -- Assemble attestations, work logs, and shared\n  research into coherent proposals, with stronger onchain and archive rails available when those\n  modes are intentionally enabled.\n- **Families and friends** -- Use Coop as a shared memory capsule for trips, gardens, history, or\n  any group project where everyone contributes fragments.\n- **Personal knowledge management** -- Use Coop solo as a browser-first, local-first capture and\n  review tool with optional sync, archive, and export paths.\n\n## Key Features\n\n### Implemented Today\n\n- **Capture and intake** -- Browser tabs in the extension, plus audio, photos, files, and links in\n  the receiver PWA. Cross-device receiver pairing lets mobile captures land in the extension's\n  private intake before review.\n- **Review and publish** -- Popup and `Chickens` workflows for candidate review, draft editing,\n  categorization, and publish decisions.\n- **Local AI refinement** -- A 16-skill agent pipeline with a three-tier local inference cascade\n  (WebGPU, WASM, heuristics). The system is designed to work without hosted inference or API keys.\n- **Local-first sync** -- Yjs CRDT sync with y-webrtc peers, y-websocket document sync support, and\n  outbox tracking for publish-related events.\n- **Board, proof, and export paths** -- Coop board views, archive receipts, and snapshot/artifact/\n  receipt export flows are surfaced today.\n- **Passkey-first identity** -- WebAuthn-based identity with no wallet-extension-first requirement.\n\n### Available With Mode Or Gate Qualifiers\n\n- **Onchain rails** -- Safe/ERC-4337 flows, anchor actions, and other live onchain behavior are\n  mock-first by default and move behind a separate live gate when intentionally enabled.\n- **Archive live rails** -- Storacha/Filecoin-backed archive delegation exists, but live archive\n  credentials and trusted-node behavior are operator-only paths rather than the default public\n  release posture.\n- **Anonymity features** -- Coop's baseline privacy posture is local-first capture and explicit\n  publish. Privacy mode surfaces anonymous-publish UI and stealth-address UI. The current anonymous\n  publish path hides the author label in published artifacts; proof-backed ZK membership attachment\n  remains an integration path rather than something this README should treat as fully shipped\n  default behavior.\n- **Green Goods workflows** -- Member work submission, operator approvals and assessments, GAP\n  reconciliation, and Hypercert/Karma GAP packaging exist in the product model, with live behavior\n  depending on mode, authority, and environment.\n- **ERC-8004 / FVM registry** -- Agent identity and registry flows exist in the repo and runtime\n  model, but should be read as gated infrastructure capabilities rather than baseline public-launch\n  behavior.\n\n### Anonymity, Archiving, and Portability Notes\n\n- **Local-first by default** -- Raw captures stay local until a person explicitly shares or syncs\n  them.\n- **Anonymity is not the default** -- Anonymous publish is a user-enabled path, distinct from the\n  baseline local-only capture model.\n- **Export is the primary surfaced portability path today** -- Snapshot/artifact/receipt export is\n  wired into the current UI. Restore/import primitives also exist in shared modules and tests, but\n  they are not yet presented as the primary polished end-user recovery flow.\n\n## Architecture\n\nBun monorepo with four runtime packages, plus a docs workspace and a contracts sidecar:\n\n| Package | Description |\n|---------|-------------|\n| `@coop/shared` | Schemas, flows, sync contracts, and shared modules: agent, app, archive, auth, blob, coop, erc8004, fvm, greengoods, member-account, onchain, operator, permit, policy, privacy, receiver, session, stealth, storage, transcribe |\n| `@coop/app` | Landing page + receiver PWA shell (audio, photo, file, link capture) |\n| `@coop/extension` | MV3 browser extension -- popup (screen router, share menu), sidepanel (tab router, coop selector, filter popover), background handlers, offscreen workers |\n| `@coop/api` | Hono + Bun TypeScript signaling relay with optional Yjs document sync persistence, deployed on Fly.io |\n\nSupporting directories outside the runtime four-pack:\n\n- `docs/` -- Docusaurus workspace for `docs.coop.town`\n- `packages/contracts/` -- Foundry sidecar for Solidity contracts and deployment artifacts\n\nBuild order: shared -\u003e app -\u003e extension (shared is the dependency root for the runtime packages).\n\n## Key Principles\n\n- **Browser-First** -- The extension is the primary product surface; core capture and local analysis\n  do not depend on hosted inference.\n- **Local-First** -- All data stays on your device until you explicitly share. Dexie for structured\n  data, Yjs for CRDT sync.\n- **Passkey-First** -- No wallet extensions required. WebAuthn passkey identity bridged to onchain\n  Safe accounts.\n- **Offline Capable** -- Works without internet, syncs when connected.\n- **Explicit Sharing** -- Review and publish remain human decisions. Anonymous publish is a\n  separate user-enabled option, not the default path.\n\n## Standards\n\nERC-4337 (account abstraction), ERC-1271 (signature validation), EIP-712 (typed structured data),\nERC-7579 (modular smart accounts), ERC-5564 (stealth addresses), ERC-8004 (onchain agent\nregistry), Semaphore (ZK group membership), Storacha/Filecoin (permanent archiving), Yjs CRDTs\n(conflict-free sync).\n\n## Local Development\n\nCoop pins Node 22 in `.mise.toml`. Bun is the workspace package manager, but the docs site still\ndepends on a working Node toolchain.\n\nRecommended shell bootstrap:\n\n```bash\nmise install\neval \"$(mise activate zsh)\"\nnode -v\n```\n\n`node -v` should report `v22.x` before you run the docs commands. If your shell still resolves an\nolder Node first, fix that before running `bun run docs:dev` or `bun run docs:build`.\n\n```bash\nbun install              # Install dependencies\nbun dev                  # Start app + extension concurrently\nbun dev:app              # Start app only\nbun dev:extension        # Start extension only (WXT dev + Chromium)\nbun dev:api              # Start API server\nbun run test             # Run unit tests (vitest)\nbun run test:e2e         # Run Playwright E2E tests\nbun run test:visual      # Run visual regression tests\nbun run build            # Build everything (shared -\u003e app -\u003e extension)\nbun format \u0026\u0026 bun lint   # Format (Biome) and lint workspace\nbun run validate smoke   # Fast confidence pass\nbun run validate:store-readiness\nbun run validate:production-readiness\nbun run validate:production-live-readiness\nbun run validate list    # List all available validation suites\n```\n\n\u003e **Note:** Always use `bun run test` (not `bun test`). The former runs vitest with proper environment configuration; the latter uses Bun's built-in runner and ignores vitest config.\n\n## Environment\n\nSingle `.env.local` at the repository root (never create package-specific `.env` files).\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `VITE_COOP_CHAIN` | Target chain: `sepolia` or `arbitrum` | `sepolia` |\n| `VITE_COOP_ONCHAIN_MODE` | On-chain mode: `mock` or `live` | `mock` |\n| `VITE_COOP_ARCHIVE_MODE` | Archive mode: `mock` or `live` | `mock` |\n| `VITE_COOP_SESSION_MODE` | Session mode: `off`, `mock`, or `live` | `off` |\n| `VITE_COOP_PRIVACY_MODE` | Toggle privacy-mode surfaces such as anonymous publish UI and stealth-address UI (`on` or `off`) | `off` |\n| `VITE_COOP_SIGNALING_URLS` | Comma-separated WebSocket signaling endpoints | `wss://api.coop.town` |\n| `VITE_COOP_RECEIVER_APP_URL` | Receiver PWA base URL | `http://127.0.0.1:3001` |\n| `VITE_PIMLICO_API_KEY` | For live Safe/ERC-4337 operations | -- |\n\nFor Playwright E2E runs, the repo starts its own local signaling server automatically.\n\n## Release Posture\n\nCoop's current release posture is mock-first.\n\n- Automated mock-first release bar: `bun run test`, `bun run test:coverage`, `bun run build`,\n  `bun run validate:store-readiness`, and `bun run validate:production-readiness`\n- Remaining public-release blocker: manual Chrome popup QA for real-click `Capture Tab` and\n  `Screenshot`\n- Live Safe, archive, and session-key rails remain a second gate behind\n  `bun run validate:production-live-readiness`\n\nFor public Chrome Web Store candidates, keep `VITE_COOP_ONCHAIN_MODE`,\n`VITE_COOP_ARCHIVE_MODE`, and `VITE_COOP_SESSION_MODE` on the mock-first path unless the\nlive-rails gate is intentionally being exercised.\n\nCanonical references:\n\n- [Current Release Status](docs/reference/current-release-status.md)\n- [Testing \u0026 Validation](docs/reference/testing-and-validation.md)\n- [Demo \u0026 Deploy Runbook](docs/reference/demo-and-deploy-runbook.md)\n- [Live Rails Operator Runbook](docs/reference/live-rails-operator-runbook.md)\n\n## Documentation\n\nCurrent-state docs:\n\n- [Action Domain Map](docs/reference/action-domain-map.md)\n- [Current Release Status](docs/reference/current-release-status.md)\n- [Demo \u0026 Deploy Runbook](docs/reference/demo-and-deploy-runbook.md)\n- [Testing \u0026 Validation](docs/reference/testing-and-validation.md)\n- [Receiver Pairing \u0026 Intake](docs/reference/receiver-pairing-and-intake.md)\n- [Builder Getting Started](docs/builder/getting-started.md)\n- [Architecture](docs/builder/architecture.md)\n- [Extension](docs/builder/extension.md)\n- [App](docs/builder/app.md)\n- [Environment Reference](docs/builder/environment.md)\n- [Live Rails Operator Runbook](docs/reference/live-rails-operator-runbook.md)\n- [Extension Install \u0026 Distribution](docs/reference/extension-install-and-distribution.md)\n- [Chrome Web Store Checklist](docs/reference/chrome-web-store-checklist.md)\n- [Chrome Web Store Reviewer Notes](docs/reference/chrome-web-store-reviewer-notes.md)\n- [Agent Harness](docs/reference/agent-harness.md)\n- [Agent Registry \u0026 API Server](docs/reference/erc8004-and-api.md)\n\nDeep reference and architecture:\n\n- [Original Introduction](docs/reference/original-introduction.md)\n- [Product Requirements](docs/reference/product-requirements.md)\n- [Coop OS Architecture vNext](docs/reference/coop-os-architecture-vnext.md)\n- [Knowledge Sharing \u0026 Scaling](docs/reference/knowledge-sharing-and-scaling.md)\n- [Green Goods Integration](docs/reference/green-goods-integration-spec.md)\n- [Privacy \u0026 Stealth Addresses](docs/reference/privacy-and-stealth.md)\n- [Policy, Sessions \u0026 Permits](docs/reference/policy-session-permit.md)\n- [Scoped Roadmap](docs/reference/scoped-roadmap-2026-03-11.md)\n- [EF Mandate Alignment](docs/reference/ethereum-foundation-mandate.md)\n- [Design Direction](docs/reference/coop-design-direction.md)\n- [Audio \u0026 Asset Ops](docs/reference/coop-audio-and-asset-ops.md)\n\n## Project Foundation\n\nCoop is the browser-native coordination membrane built on ideas forming across the wider\ncommunity coordination work:\n\n- Local-first collaboration over server-centric products\n- Explicit shared memory instead of fragmented chat history\n- Durable long-memory archives that communities can keep, fork, and migrate\n- Impact, governance, and capital formation as connected workflows\n- Green Goods as the onchain substrate for gardens, attestations, and collective capital flows\n\nThe goal is to make it easier for communities to move from context to coordination, from\ncoordination to evidence, and from evidence to capital. Each coop becomes a living knowledge garden\nwith a shared local-first memory membrane, stronger local analysis, long-memory publishing into\nFilecoin, Green Goods garden bindings, and smart-account-mediated execution for proposals,\nattestations, and treasury flows when those rails are intentionally enabled.\n\n## Brand\n\nCoop uses chicken metaphors throughout. Open browser tabs are **Loose Chickens**. The human review\nstep is still called the **Roost** in the product story, even though the current sidepanel `Roost`\ntab is the Green Goods member workspace. The shared feed is the **Coop Feed**. Creating a new\nshared space is **Launching the Coop**. The success chime is the **Rooster Call**.\n\n![Coop Logo](https://media.discordapp.net/attachments/1334366927094677575/1483276397873987786/signal-2026-03-11-143552.png?ex=69ba004b\u0026is=69b8aecb\u0026hm=e2bcc8442bb7287a93a879c5e7e7336f028564053b6cfaa58ffc135383ae0d5e\u0026=\u0026format=webp\u0026quality=lossless\u0026width=1080\u0026height=1080)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreenpill-dev-guild%2Fcoop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgreenpill-dev-guild%2Fcoop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreenpill-dev-guild%2Fcoop/lists"}