dsh-teambition
English | 中文说明
Bring Teambition into the DeepSeek Harness sidebar. Browse projects, task lists and cards inside DSH, operate them without leaving the GUI, and run any card in a DSH workspace you pick: the plugin creates a session in that workspace and submits the card's title, project, link, updated time and note as the opening prompt.
- Repository: https://github.com/Yeezone/dsh-teambition
- Latest release:
v0.1(0.1.0);mainis at0.7.0 - License: Apache-2.0
Why it exists
Work happens in DSH, while tasks and bugs live in Teambition. Switching windows to read a card, then pasting its context into a session, is the part worth automating. The plugin turns Teambition into a DSH panel:
- Click Teambition in the sidebar; the panel opens in the main column.
- Pick a project (and a task list, for projects with several), then read cards per kanban column.
- Click Run on a card: the plugin creates a session in the bound workspace, submits the card title, project, link, updated time and note as one queued prompt, then opens that session.
Where a card runs is configurable: a per-card binding wins, then the project default, then the panel-wide default workspace.
Where it lives in the GUI
- Sidebar row: registered on the official
sidebar.panellistseat, after "Plugins" and "Automations". - Main page: registered on the official
mainseat, with a Tasks / Board switcher plus project / task list selectors, refresh and settings. - Task list (default unless the default view is the board): a table close to the Teambition task module — task number, title, assignee avatar and name, due date (red when overdue), stage and last update. The toolbar searches, groups by task list / stage / assignee, filters by open / done / overdue / unassigned state, and sorts by updated, created, due or priority. Clicking a row opens the task page: a two-column property grid (state, assignee, creator, participants, priority, story points, start, due, stage, task list, task type, created / updated, attachments), the note, the (read-only) sub-tasks, the activity feed and custom fields, plus the same run / complete / rebind actions as the board.
- Board: the project views of the Teambition web board (for example "All tasks", a workflow-status view, "My tasks", "Created by me") in a rail on the left. A view saved with a workflow vertical renders one column per workflow status; stage views render one column group per stage. Every column header has a "+" that opens the create form with that column preselected, and cards carry their workspace marker plus the actions Run, Complete (advance the workflow status), Open in Teambition and Bind workspace. Completed cards show a green check before a struck-through title. Cards drag between columns: drop one on another column to move it there (workflow status or stage, by the column kind).
- New card form at the bottom of the panel: title, optional note, target stage.
- Task page: opens from a board card or from a task-list row and mirrors the Teambition task module: properties, note, sub-tasks, activity feed, custom fields, and the same release actions. Escape, the close button or the backdrop close it.
- Settings view: cookie (write / clear), diagnose probes, operator id, endpoint base, default view (task list / board), default workspace, and a per-project workspace table.
Features
- Task module: a task table (number, title, assignee, due, stage, update time)
with search / grouping / filtering / sorting and a full task page; the
chosen view and toolbar settings persist in
localStorage. - Task-list filter: when a project has several lists, the toolbar narrows the table to one of them; switching project clears it back to every list.
- Default view: the settings view picks task list or board, and the panel plus every project switch open on it.
- Saved views and workflow boards: the board rail lists the project views saved in Teambition and remembers the selection per project. Workflow views render one column per workflow status (the tasks module look), stage views keep the stage columns; "executed by me" / "created by me" views filter their cards, and every column can quick-add a card.
- Drag and drop: grab a card on the board and drop it on another column to move it there. Workflow status columns update the status, stage columns update the stage, the hovered column highlights, and busy cards stay non-draggable.
- Two-level switching (project, then task list). Projects with many task lists
are grouped by list instead of flattened into dozens of same-named columns; the
selection is remembered in
localStorageand restored on the next visit. - The board view stays available through the Board tab, with the same card creation and stage moving as before.
- Card actions: run in DSH, complete the card or advance it to the next open workflow status, open in Teambition, bind an execution workspace. Completed cards are checked (green check, struck-through title on the board, a "done" badge in the task list, a state row in the task page).
- Workspace bindings with card > project > panel-default precedence, resolved by the host so the browser half never needs the full binding table.
- Diagnostics: six candidate endpoints are probed one by one and the HTTP status plus verdict of each attempt is shown, which makes an expired cookie or an API change easy to spot.
- One model-visible agent tool,
teambition: list projects, read a project, create cards, move cards, record workspace bindings. - Bilingual UI (zh / en) that follows the DSH language and light / dark theme.
Quick start
- Sign in to https://www.teambition.com in a browser, open DevTools → Network, refresh, select any request, and copy its whole Cookie request header (not the page URL).
- In DSH: sidebar → Teambition → Settings → paste the cookie → save →
Diagnose. A usable cookie reports
Cookie accepted. - Back on the board, choose a project (and a task list if the project has several; "all task lists" is grouped by list).
- Choose a default workspace in settings, or bind one per project or per card.
- Click Run on a card; a session opens in that workspace with the card context already submitted.
Cookies expire. When they do, the board and the diagnose verdict report
HTTP 401 AccessTokenMissing; copy a fresh cookie and save it again.
Install
@yeezone/dsh-client-ui-teambition is a dual-face cordis plugin package: the
node half (exports ".") runs in the host process and serves
POST /teambition/*; the browser half (exports "./client") is served to the
GUI as /plugins/@yeezone/dsh-client-ui-teambition/client.js.
git clone https://github.com/Yeezone/dsh-teambition.git
cd dsh-teambition
pnpm install --frozen-lockfile
pnpm run build
dsh plugin --profile <profile> add link:$PWD
The bundle patch (cordis.patch.yml) inserts the ui-teambition row, so the
profile boot mounts both halves. A full application restart is required: the
browser half only loads when the composition includes the new row. After that,
client-only changes need a page refresh.
If the profile is app-owned (the packaged desktop app's desktop profile), the
CLI refuses to write it: install from the GUI Plugins page, or add the dependency
and the dsh.profile.bundles row to the profile's package.json manually, then
restart.
Data and privacy
- Host state lives in
$DSH_HOME/teambition/config.json(mode0600): cookie, operator id, endpoint base, workspace bindings, the last diagnose pass, and the last project list. Writes are atomic (temp file + rename). - The browser half receives
configuredand a four charactercookieTailonly; the cookie never crosses the host / browser boundary and never reaches model-visible output. - Remote reads use Teambition's own web REST API through a candidate list plus a
diagnoseprobe rather than hardcoded assumptions; response previews are redacted before they reach the settings view. - The plugin writes to Teambition only for explicit actions (create card, change stage, change status); running a card only creates a local DSH session.
Known limits
- Teambition's web REST API is an internal, cookie-authenticated API (not the official open API) and may change without notice.
- Pushing a workflow status depends on the project exposing that endpoint; projects without workflow statuses can only move cards between stages.
- Card listing is capped at 40 pages of 200 tasks per project.
- No background polling or webhook support: data refreshes when you open the panel or press refresh.
- Moving a card across projects is not implemented yet (the path is unverified).
Versioning and branches
mainis the development trunk;v0.1is the current frozen release line (0.1.x).- New work branches as
feat/<slug>, fixes asfix/<slug>. Every change that lands onmainbumpspackage.jsonversionand adds aCHANGELOG.mdentry; the pull request template enforces both. - Release lines only receive cherry-picked fixes, shipped as patch tags. Tags
(
v<version>) and GitHub Releases are cut only aftermainCI is green. See CONTRIBUTING.md.
Package layout
src/core/- shared vocabulary, wire contract (protocol.ts), Teambition types / endpoints / mapping / redaction.src/host/- config store, Teambition REST service, HTTP routes, agent tool.src/client/- locale dictionaries, API client, panel, sidebar registration.shared/- build preset vendored from the dsh-web monorepo (tsdown client bundling plus the platform seed table).tests/- vitest suites for both halves.
Tests
pnpm run typecheck
pnpm test
pnpm run build
Credits and license
Apache-2.0. The Teambition client and config code is adapted from the
dsh-task-board package of dsh-web
(Apache-2.0); see NOTICE for the upstream attribution and the scope of
reuse. This plugin is not maintained by that repository's authors.
No comments yet. Be the first to write one.