For project, issue and Notes automation, select Collab CLI in the sidebar or open /docs/cli on your Collab server for the CLI guide and searchable command reference, or read the CLI package guide. Existing /docs links serve the same documentation and installation links. The legacy /{workspace}/apps/collab-cli URL redirects to the guide after the existing session, workspace membership and published-app checks; the CLI's OAuth registration and credentials remain in use. Other apps retain their workspace entrypoints. The developer console's API reference remains at /dev/docs.
The public /home page leads with CLI installation and a terminal/shared-project showcase. Select any of the four read-only workflow examples to explore projects, issues, keyword search and bounded project context; the demo makes no CLI or API calls and does not start an agent. Motion can be paused and respects reduced-motion preferences. The secondary product preview uses labelled example data, and a FAQ explains how existing agents use the CLI and agent inboxes. Installation and command-reference links remain available; see search availability requirements.
For the app-auth API's bounded project overview, see Project context for agents.
For coordinating agents and monitoring their work in the web inbox, see Agent handoffs. To run an owned background agent with usage limits, see dedicated workers.
For a read-only 3D view of project rooms, registered agents and recorded work, see Organisation agent floor.
Overview
Collab is designed to streamline internal communication and work tracking by offering a timeline-based feed for status updates, built-in task and board management, threaded discussions, and integrations with popular developer tools. With its intuitive interface, teams can quickly share progress, identify blockers and coordinate efforts without the complexity of traditional project management systems.
Screenshots
Key Features
- Real-time timeline for status updates, challenges, and ideas
- Kanban-style task boards with drag-and-drop support
- Milestones, epics, and story tracking for project planning
- Threaded comments, reactions, and notifications
- Feature requests with voting and prioritization
- AI-assisted content improvement and summarization
- Account sign-in via NextAuth.js (see Usage)
- File uploads and customizable user avatars
- Workspace and team management with role-based access
- RESTful API for integration with external tools
Built With
- Next.js (App Router) and React
- TypeScript for static typing
- Prisma ORM with PostgreSQL
- Tailwind CSS for styling
- NextAuth.js for authentication
- React Query for data fetching and caching
- Zod for schema validation
- Tiptap editor for rich text content
- Radix UI and Headless UI components
- Cloudinary for media handling
- VSCode, Node.js, npm
Installation
-
Clone the repository:
git clone https://github.com/Art-of-Technology/collab.git
cd collab
-
Install dependencies:
npm ci --legacy-peer-deps
-
Set up environment variables:
cp .env.example .env
Edit .env and configure the following environment variables:
Required Variables
Database Configuration
DATABASE_URL="postgresql://username:password@localhost:5432/collab_db"
Authentication (NextAuth.js)
NEXTAUTH_URL="http://localhost:3000" # Your app's URL
NEXTAUTH_SECRET="your-super-secret-jwt-secret-here" # Generate with: openssl rand -base64 32
# Google OAuth (required for Google sign-in)
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"
Media Storage (Cloudinary)
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME="your-cloudinary-cloud-name"
CLOUDINARY_API_KEY="your-cloudinary-api-key"
CLOUDINARY_API_SECRET="your-cloudinary-api-secret"
Optional Variables
AI Features (OpenAI)
OPENAPI_KEY="sk-your-openai-api-key-here" # Required for AI text improvement and board generation
Email Configuration (Resend)
RESEND_API_KEY="re-your-server-only-api-key"
EMAIL_FROM="Collab <[email protected]>"
NEXT_PUBLIC_APP_URL="https://collab.weez.boo"
Verify weezboo.com for sending in the same Resend account. Invitations use the shared transactional email sender and include the configured application’s acceptance link. SMTP settings are no longer used for invitations.
Provider rejection, missing configuration, or unconfirmed delivery is reported as emailSent: false; the pending invitation and copyable link remain available. A provider message ID means accepted for delivery, not proof of inbox receipt. Requests time out after 10 seconds and are never automatically retried. Timeouts, interrupted or malformed successful responses, and missing message IDs leave delivery unconfirmed. Check the recipient inbox before manually resending: resending replaces the pending invitation and invalidates its previous link.
The invitation form and create/resend notifications show Invitation sent successfully only when emailSent is explicitly true. Missing email configuration or a provider rejection shows Invitation created; email not sent. Other uncertain outcomes, including a missing delivery status, show . Submitting again clears the previous feedback; a failed creation keeps the entered email for correction.
Usage
- Open your browser and navigate to http://localhost:3000.
- Sign up or log in using Google.
When native Maestro is enabled, open Profile → Connect Maestro, choose
Verify Google account, complete the Google round trip with the same account,
then choose Connect Maestro. Successful linking opens your Collab workspace
immediately; revisiting the linking page also continues into Collab. Sign in with Maestro returns
to your existing Collab account; Google remains available. For availability,
configuration and linking safeguards, see the native Maestro guide.
For gateway sign-in availability and sign-out behavior, see the
client session contract.
- Create or join a workspace to start sharing updates.
See the session and workspace access contract
for identity and membership requirements.
For pending invitations, see the recipient access contract.
For invitation links, see the preview and acceptance contract.
For permission visibility, toggles and role resets, see the
workspace permissions contract.
For custom-role names, grants and member assignments, see the
custom-role contract.
- Open Settings in the bottom-left profile menu to reach your profile and notification settings, in either the expanded or collapsed sidebar. This action is disabled until a workspace is selected. The workspace settings index () redirects to workspace management (); the retired AI-key settings route remains unavailable.
Issue descriptions
Issue descriptions open in read mode, so following a link does not enter editing.
Markdown headings, lists, links, code blocks and tables from the CLI or API render
alongside existing rich HTML, including when an external update arrives. Content
is sanitized before rendering; mentions remain interactive. Saved preview cards
and plain-link previews appear as URL links in read mode. Images remain inline
without a click-to-open viewer, including in issue comments.
Choose Edit description to make changes. Changes autosave as rich-editor HTML;
Done becomes available once the current content is saved and returns to read
mode. Opening or previewing a description leaves its stored value unchanged.
Opening another issue starts in read mode.
While editing, use History in the description toolbar to preview a version, then choose
Revert to this version to restore it, including an empty description. History
includes web, CLI and legacy description updates, with Markdown and table support
in previews and restored content. It retrieves the latest 100 description updates,
so newer unrelated activity does not displace them.
On an issue page, Back and navigation after deletion retain an explicit view
context. Without one, they look up the project's currently accessible default
view, even when the workspace slug lookup returns no slug. If that view is
unavailable, they return to the project when its slug is known, otherwise to
Views. In an issue modal, Back closes the modal.
For moving issues to Trash, restoring them and administrator permanent deletion,
see Issue Trash and Restore.
Notes
The Notes rich-text editor preserves HTML tables with distinct headers and cells,
spacing and borders, and horizontal scrolling for wide tables. Links and cells
spanning multiple columns (colspan) are retained through editing, saving and
reloading. Markdown headings, lists, links, code and tables are rendered through
the same sanitized conversion used for issue descriptions. Loading or restoring
content into the editor does not save it automatically. Stored documents are not rewritten,
and content already saved as flattened text is not reconstructed.
collab notes get and the note update response return the full stored content
(Markdown or HTML), preserving line breaks, indentation, entities and tables for
read/edit/write round trips. Clients rendering HTML must sanitize it; list excerpts
remain plain text. Existing access checks and secret redaction still apply.
The editor regression checks
cover table structure and simulated save/reload. Browser layout and persisted
application save/reload remain unverified.
Project overview
The sidebar Projects section can be collapsed with its chevron. When expanded,
it shows up to five accessible, non-archived projects in the current workspace,
most recently modified first. Search projects matches names and issue prefixes
across all accessible, non-archived projects before limiting the results to five.
The Projects label opens the full list, and Create project remains available
even when the section is collapsed.
Open Home for the workspace overview, including
filtering, project summaries, cached repository activity and the URL for opening
a selected project's issues and memory. Within a selected overview, choose another
project and select Show project to switch projects.
For a Forge-connected project, Issues shows counts for the loaded result, a
short issue preview and any partial-results warning. Projects without a Forge
binding show up to five readable Collab issues, most recently updated first,
with linked keys and titles; Open project opens the existing project overview
and views. Project memory previews revisions and links to the
full memory lifecycle. Open issue board and
Review project memory lead to the selected project's canonical pages.
Reload overview fetches the selected scope again. Denied, unavailable,
not-connected and successful empty reads have distinct messages; failed reads
never become an empty success or “All clear”. See the
overview access contract
for chooser and payload authorization.
When both Forge reads succeed, Open an issue for Ready review leads to the board's
existing issue editor. The overview provides navigation only, with no execution
totals or merge/deploy authority; the Ready contract
owns consent and runtime admission. The shared legacy dashboard API and
components remain available separately.
Integration availability
Open Project Settings → Git providers to browse or enter a repository path
and connect using an access token. See Git provider connections
for supported servers, credentials, refresh, reconnect and retained history.
The project dashboard's Repository card lists saved active connections,
including legacy GitHub, GitLab and Forgejo repositories. Connect repository
opens Git providers settings. Connecting, changing or disconnecting a repository
refreshes the cached summary. Failed summary or GitHub connection checks show
Retry instead of reporting that the repository is disconnected.
GitHub repository authorization uses the current tab. After project access is
validated, authorization returns to the project's Git providers tab, where
cancellation and provider errors appear or successful authorization exposes
repository selection. No popup permission or manual popup closure is required.
See the OAuth browser-state contract
for validation failures and return destinations.
For GitHub account and repository disconnect behavior, repository details and
configuration access, see the
GitHub lifecycle access contract.
For version and release list visibility and migration effects, see the
version access contract.
For GitHub metadata visibility on an issue, see the
issue GitHub projection contract.
For settings-page access and webhook configuration display, see the
GitHub settings contract.
The legacy Slack /api/slack/my-tasks and /api/slack/create-issue commands
return HTTP 503 with an ephemeral unavailable message. Editable profile slackId
values are not verified identities; existing configuration, profile IDs and
issues are retained. For availability of Collab's existing task UI writes, see
the legacy write contract.
Forge-backed commands await verified workspace/channel/project binding.
Inventory command consumers before deploying this retirement.
For Notes visibility, sharing and template restrictions, see the
Notes access contract.
For issue visibility, edits and project moves, see the
issue access and mutation contract.
After the usual sign-in and page access checks, a missing feature request or one
denied by the feature detail access contract
shows the 404 page. If an accessible feature belongs to another project in the
same workspace, you are redirected to the requested project's feature list.
A failure to load the feature data shows “Something went wrong”.
API
Collab exposes a RESTful API under the /api namespace. Example endpoints:
/api/posts – Read and create posts using a signed-in session; see the
post access contract.
- GET
/api/tasks/boards/{boardId}/tasks – List tasks in a board.
- GET
/api/users/me – Fetch current user profile.
Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!
- Fork the repository.
- Create a new branch:
git checkout -b feature/YourFeature.
- Install dependencies and ensure all tests and linters pass.
- Commit your changes and push to your fork.
- Open a pull request with a clear description of your changes.
Code of Conduct
This project adheres to the Contributor Covenant. By participating, you are expected to uphold this code.
Top Contributors ✨
Thanks goes to these wonderful people:
License
Distributed under the Apache License 2.0 - see the LICENSE file for details.
Contact
https://weezboo.com
https://github.com/Art-of-Technology/collab
OAuth approval and retired Coclaw integration
See the OAuth endpoint reference for explicit consent, callback registration, PKCE, workspace access and current permission ceilings.
Coclaw is retired: its menu, settings, background polling, startup integration and chat proxy are removed. Its APIs, including the raw GitHub credential export used by Coclaw, return HTTP 410 without reading stored credentials or conversations. Historical database records remain intact. External agents still use Collab CLI, agent inboxes, handoffs and label watchers. Ordinary project GitHub connections are separate and remain supported.