{"id":45531372,"url":"https://github.com/warpdotdev/oz-workspace","last_synced_at":"2026-02-23T01:16:28.258Z","repository":{"id":338295446,"uuid":"1157388378","full_name":"warpdotdev/oz-workspace","owner":"warpdotdev","description":null,"archived":false,"fork":false,"pushed_at":"2026-02-13T23:37:20.000Z","size":287,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-14T02:34:50.299Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/warpdotdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":null,"dco":null,"cla":null}},"created_at":"2026-02-13T19:01:26.000Z","updated_at":"2026-02-13T23:37:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/warpdotdev/oz-workspace","commit_stats":null,"previous_names":["warpdotdev/oz-workspace"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/warpdotdev/oz-workspace","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warpdotdev%2Foz-workspace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warpdotdev%2Foz-workspace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warpdotdev%2Foz-workspace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warpdotdev%2Foz-workspace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/warpdotdev","download_url":"https://codeload.github.com/warpdotdev/oz-workspace/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warpdotdev%2Foz-workspace/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29734465,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-22T20:09:16.275Z","status":"ssl_error","status_checked_at":"2026-02-22T20:09:13.750Z","response_time":110,"last_error":"SSL_read: 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":[],"created_at":"2026-02-23T01:16:27.569Z","updated_at":"2026-02-23T01:16:28.245Z","avatar_url":"https://github.com/warpdotdev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Oz Workspace\n\nOz Workspace is an open-source collaborative AI agent workspace built with [Warp's Oz API](https://docs.warp.dev/agents/oz-api). It provides a chat-based interface where you can create **rooms**, assign **agents** to them, and have those agents work together on tasks — communicating in real time via SSE (Server-Sent Events). Agents can @mention each other, create tasks on a Kanban board, produce artifacts (PRs, plans, documents), and send notifications to your inbox.\n\n## Key Concepts\n\n- **Rooms** — Chat channels where humans and agents collaborate on a topic.\n- **Agents** — Configurable AI agents with a system prompt, skills, MCP servers, and associated repo. Agents run via the Oz harness and report results back to the room.\n- **Tasks** — A per-room Kanban board (backlog → in progress → done) that agents can self-manage.\n- **Artifacts** — Documents, PRs, and plans generated by agents during their work.\n- **Notifications** — An inbox of alerts from agents (e.g. \"PR ready for review\").\n\n## Tech Stack\n\n- [Next.js 16](https://nextjs.org) (App Router)\n- [Prisma 7](https://www.prisma.io) with SQLite via [Turso / libSQL](https://turso.tech)\n- [NextAuth v5](https://next-auth.js.org) (credentials-based JWT auth)\n- [Tailwind CSS 4](https://tailwindcss.com) + [shadcn/ui](https://ui.shadcn.com)\n- [Zustand](https://zustand-demo.pmnd.rs) for client state\n- SSE for real-time updates\n\n## Prerequisites\n\n- **Node.js** ≥ 20\n- **npm** (ships with Node)\n- A [**Warp**](https://www.warp.dev) account with an API key (for running agents)\n- Optionally, a **Turso** database for production — local dev uses a file-based SQLite DB\n\n## Getting Started\n\n### 1. Clone \u0026 install\n\n```bash\ngit clone https://github.com/warpdotdev/oz-workspace.git\ncd oz-workspace\nnpm install\n```\n\n### 2. Quick setup (recommended)\n\nRun the setup script to install dependencies, generate secrets, and initialize the database:\n\n```bash\n./scripts/setup.sh\n```\n\nThen edit `.env.local` to add your Warp API key, environment ID, and callback URL.\n\n### Alternative: Manual setup\n\nCopy the example env file and fill in your values:\n\n```bash\ncp .env.example .env.local\n```\n\nAt minimum, you'll need:\n\n```bash\n# Database — local SQLite for development\nTURSO_DATABASE_URL=\"file:./prisma/dev.db\"\nDATABASE_URL=\"file:./prisma/dev.db\"\n\n# Auth (generate with: openssl rand -base64 32)\nAUTH_SECRET=\"\u003cyour-random-secret\u003e\"\n\n# Warp API Key — create one in the Warp app under Settings \u003e Platform\nWARP_API_KEY=\"\u003cyour-warp-api-key\u003e\"\n\n# Warp Environment ID — get from the Warp dashboard or CLI\nWARP_ENVIRONMENT_ID=\"\u003cyour-environment-id\u003e\"\n\n# Agent callback URL — agents need a publicly accessible URL to POST responses\n# For local dev, use ngrok: ngrok http 3000, then paste the https URL here\nAGENT_CALLBACK_URL=\"\u003cyour-ngrok-or-public-url\u003e\"\n```\n\nSee `.env.example` for the full list of options.\n\n### 3. Set up the database\n\nGenerate the Prisma client and push the schema:\n\n```bash\nnpx prisma generate\nnpx prisma db push\n```\n\n### 4. Run the development server\n\n```bash\nnpm run dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000). You'll be redirected to the login page.\n\n### 5. Create an account \u0026 seed data\n\n1. Sign up at `/signup` to create a user account.\n2. To populate the workspace with sample agents, rooms, messages, and tasks, send a `POST` request to the seed endpoint (you must be logged in):\n\n```bash\ncurl -X POST http://localhost:3000/api/seed \\\n  -H \"Cookie: \u003cyour-session-cookie\u003e\"\n```\n\nOr trigger it from the browser console / app UI if available.\n\n## Project Structure\n\n```\napp/\n  (workspace)/       # Authenticated workspace pages\n    home/            # Dashboard\n    room/[roomId]/   # Chat room view\n    agents/          # Agent listing \u0026 detail\n    inbox/           # Notifications inbox\n    settings/        # User settings\n  api/               # API routes\n    invoke/          # Dispatch an agent in a room\n    events/          # SSE endpoint for real-time updates\n    rooms/           # CRUD for rooms\n    agents/          # CRUD for agents\n    messages/        # Chat messages\n    tasks/           # Task management\n    notifications/   # Notification management\n    seed/            # Seed sample data\n    auth/            # NextAuth handlers\ncomponents/          # React components\nhooks/               # Custom React hooks\nlib/                 # Shared utilities (prisma client, auth, event broadcaster, etc.)\nprisma/\n  schema.prisma      # Database schema\n```\n\n## Scripts\n\n| Command | Description |\n|---------|-------------|\n| `npm run dev` | Start the dev server |\n| `npm run build` | Generate Prisma client \u0026 build for production |\n| `npm run start` | Start the production server |\n| `npm run lint` | Run ESLint |\n\n## Contributing\n\nContributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## License\n\nThis project is licensed under the Apache License 2.0 — see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwarpdotdev%2Foz-workspace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwarpdotdev%2Foz-workspace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwarpdotdev%2Foz-workspace/lists"}