DeepSeek Harness Remote
DeepSeek Harness Remote 可將手機或另一台電腦與你運行 DeepSeek Harness 的電腦安全連接,隨時隨地繼續你的工作,方便隨時查看進度並繼續工作。
AI 翻譯
A modern internal task management system built for teams to plan, structure, and track their work — from kickoff to delivery.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗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.
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.
| Timeline | Legacy dashboard | Task |
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:
DATABASE_URL="postgresql://username:password@localhost:5432/collab_db"
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"
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME="your-cloudinary-cloud-name"
CLOUDINARY_API_KEY="your-cloudinary-api-key"
CLOUDINARY_API_SECRET="your-cloudinary-api-secret"
OPENAPI_KEY="sk-your-openai-api-key-here" # Required for AI text improvement and board generation
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.
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.
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.
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.
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”.
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./api/tasks/boards/{boardId}/tasks – List tasks in a board./api/users/me – Fetch current user profile.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!
git checkout -b feature/YourFeature.This project adheres to the Contributor Covenant. By participating, you are expected to uphold this code.
Thanks goes to these wonderful people:
Distributed under the Apache License 2.0 - see the LICENSE file for details.
https://weezboo.com https://github.com/Art-of-Technology/collab
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.
In workspace management, users with invitation permission can choose Copy invitation link under Pending Invitations when a token is available. Share the link with the invited person. If clipboard access fails or is unavailable, focus the displayed link field to select it and copy it manually. Successful cancellation clears the manual-copy field.
APP_TOKENS_KEY="your-32-character-encryption-key-here" # Generate with: openssl rand -hex 32
For outbound webhook configuration, see Webhooks.
SENTRY_DSN="https://[email protected]/project-id"
NEXT_PUBLIC_FEATURE_APPS="true" # Enable app store features
NEXT_PUBLIC_APP_URL="https://your-app-domain.com" # Public URL for invitation links
NODE_ENV="development" # or "production"
CI="true" # Set in CI/CD environments for build optimizations
Before production setup, follow the core-first execution boundary for agent chat availability, required initial settings and later execution approval.
NEXT_PUBLIC_)sk-)For development:
# Using Docker
docker run --name collab-postgres -e POSTGRES_PASSWORD=password -e POSTGRES_DB=collab_db -p 5432:5432 -d postgres:15
# Or install PostgreSQL locally and create a database
createdb collab_db
Generate the Prisma client:
npx prisma generate
Before starting the app, follow the fresh database bootstrap guide for a new empty database. It also explains the migration-history limitations and why existing installations require their original migrations.
(Optional) Initialize a default workspace:
npm run prisma:init-workspace
Start the development server:
npm run dev
/workspaces/<workspaceId>/settings/workspaces/<workspaceId>