{"id":42201609,"url":"https://github.com/schoolai/shipyard","last_synced_at":"2026-02-27T05:00:56.588Z","repository":{"id":331801588,"uuid":"1127062036","full_name":"SchoolAI/shipyard","owner":"SchoolAI","description":"Verify AI agent work with collaborative review and proof-of-work artifacts","archived":false,"fork":false,"pushed_at":"2026-02-25T02:55:16.000Z","size":12557,"stargazers_count":1,"open_issues_count":40,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-25T03:45:12.375Z","etag":null,"topics":["ai-agents","claude-code","code-review","collaboration","mcp","proof-of-work","task-management","typescript"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SchoolAI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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-03T05:10:31.000Z","updated_at":"2026-02-25T02:54:24.000Z","dependencies_parsed_at":"2026-02-21T22:03:10.555Z","dependency_job_id":null,"html_url":"https://github.com/SchoolAI/shipyard","commit_stats":null,"previous_names":["schoolai/peer-plan","schoolai/shipyard"],"tags_count":68,"template":false,"template_full_name":null,"purl":"pkg:github/SchoolAI/shipyard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SchoolAI%2Fshipyard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SchoolAI%2Fshipyard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SchoolAI%2Fshipyard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SchoolAI%2Fshipyard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SchoolAI","download_url":"https://codeload.github.com/SchoolAI/shipyard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SchoolAI%2Fshipyard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29885799,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-26T23:51:21.483Z","status":"online","status_checked_at":"2026-02-27T02:00:06.759Z","response_time":57,"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":["ai-agents","claude-code","code-review","collaboration","mcp","proof-of-work","task-management","typescript"],"created_at":"2026-01-27T00:26:41.801Z","updated_at":"2026-02-27T05:00:56.523Z","avatar_url":"https://github.com/SchoolAI.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003eShipyard\u003c/h1\u003e\n  \u003cp\u003e\u003cstrong\u003eShip responsibly.\u003c/strong\u003e\u003c/p\u003e\n  \u003cp\u003eAgent management hub for human-agent collaboration.\u003c/p\u003e\n\n  \u003cp\u003e\n    \u003ca href=\"./LICENSE.md\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-FSL--1.1-blue\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n---\n\n## The Problem\n\nYou're managing multiple AI agents (Claude, Cursor, Devin), but there's no workspace where humans and agents collaborate together:\n- **No verification** — Agent says \"done\" but you have no proof\n- **No collaboration layer** — Humans review in GitHub, agents work in chat logs\n- **No feedback loop** — You approve work, but the agent never sees it\n\nShipyard is the collaboration workspace for mixed human-agent teams. Agents create tasks with proof. Humans review in real-time. Feedback flows both ways.\n\n## How It Works\n\n```\n                          ┌──────────────────────────┐\n                          │   Session Server          │\n                          │   (CF Workers + Durable   │\n                          │    Objects)                │\n                          │   • Auth (Shipyard JWT)    │\n                          │   • WebRTC signaling       │\n                          └─────────┬──────────────────┘\n                                    │\n                 ┌──────────────────┼──────────────────┐\n                 │                  │                   │\n        ┌────────▼───────┐  ┌──────▼───────┐  ┌───────▼───────┐\n        │  Developer A    │  │  Browser B    │  │  Phone C      │\n        │  Machine        │  │  (reviewer)   │  │  (mobile)     │\n        │                 │  │               │  │               │\n        │  ┌───────────┐  │  │  IndexedDB    │  │  IndexedDB    │\n        │  │ Daemon/MCP │  │  │  persistence  │  │  persistence  │\n        │  │ Server     │  │  │               │  │               │\n        │  └─────┬──────┘  │  └───────────────┘  └───────────────┘\n        │        │ MCP     │\n        │   ┌────▼──────┐  │         All peers sync via\n        │   │ AI Agents  │  │         Loro CRDT over WebRTC\n        │   └────────────┘  │\n        └──────────────────┘\n```\n\n1. **Agent creates task** via MCP → Browser opens automatically\n2. **Reviewers join** via shared URL → Real-time P2P sync\n3. **Add comments**, approve, or request changes → Agent sees feedback\n4. **Agent uploads artifacts** (screenshots, videos) as proof of work\n5. **Task auto-completes** when all deliverables have receipts\n\n## Quick Start\n\n```bash\n# Install the daemon\nnpm install -g @schoolai/shipyard\n\n# Log in with GitHub (opens browser for device auth)\nshipyard login\n\n# Verify you're authenticated\nshipyard login --check\n\n# Start the daemon (connects to signaling, syncs via CRDT, runs agents)\nANTHROPIC_API_KEY=sk-ant-... shipyard-daemon --serve\n```\n\nSee the [Installation Guide](./docs/installation.md) for editor-specific MCP setup (Claude Code, Cursor, VS Code, etc.).\n\n## Current State\n\nShipyard is in active development. The MCP server and web app are being rebuilt on a clean foundation:\n\n| Component | Description |\n|-----------|-------------|\n| [**Session Server**](./apps/session-server) | Auth + WebRTC signaling (Cloudflare Workers + Durable Objects) |\n| [**OG Proxy**](./apps/og-proxy-worker) | Open Graph meta tags for social link previews |\n| [**Loro Schema**](./packages/loro-schema) | CRDT Shape definitions, typed documents, helpers |\n| [**Daemon**](./apps/daemon) | CLI agent runner + device flow auth (`@schoolai/shipyard` on npm) |\n| [**Session**](./packages/session) | Session/auth shared types and client |\n\n**Tech stack:** Loro CRDT (loro-extended), TipTap editor, HeroUI v3, Tailwind v4, Cloudflare Workers\n\n## Data \u0026 Privacy\n\n| Data | Where It Lives | Control |\n|------|---------------|---------|\n| Task content | Browser (IndexedDB) + P2P sync | You own it |\n| Artifacts | Optional: GitHub (your repo, orphan branch) | You own it |\n| MCP server | Runs locally | Never leaves your machine |\n| URLs | Encoded snapshots | Shareable, regenerable |\n\n**No telemetry. No cloud storage. GitHub optional.**\n\n## Documentation\n\n| Doc | Description |\n|-----|-------------|\n| **[Development](./docs/development.md)** | Local setup, running services |\n| **[Architecture](./docs/architecture.md)** | Data model, sync topology, tech choices |\n| **[Engineering Standards](./docs/engineering-standards.md)** | Code quality, testing philosophy |\n| **[Installation](./docs/installation.md)** | Installing Shipyard across editors and CLI |\n\n## Contributing\n\nWe value **ideas over implementations**. Please start with discussion:\n\n1. **Bug reports** — [Open an issue](https://github.com/SchoolAI/shipyard/issues/new)\n2. **Feature ideas** — [Start a discussion](https://github.com/SchoolAI/shipyard/discussions/new)\n3. **Questions** — [Ask in discussions](https://github.com/SchoolAI/shipyard/discussions)\n\nPRs without a linked, approved issue may be closed. AI-assisted contributions are welcome — what matters is that **you** understand what you're submitting.\n\n## License\n\n[FSL-1.1-ALv2](./LICENSE.md) (Functional Source License)\n\n- **Free** for all non-competing use\n- **Converts to Apache 2.0** automatically in 2 years\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschoolai%2Fshipyard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fschoolai%2Fshipyard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschoolai%2Fshipyard/lists"}