basecamp-doctor
Diagnose Basecamp CLI, authentication, and agent-plugin health.
Interact with Basecamp via the Basecamp CLI. Full API coverage: projects, todos, cards, messages, files, schedule, check-ins, timeline, recordings, templates, webhooks, subscriptions, lineup, chat, pings, gauges, assignments, notifications, bookmarks, bubble-up, drafts, notes,
$ npx -y skills add basecamp/basecamp-cli --skill basecamp --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/basecampContext preview
The summary Claude sees to decide when to auto-load this skill.
Interact with Basecamp via the Basecamp CLI. Full API coverage: projects, todos, cards, messages, files, schedule, check-ins, timeline, recordings, templates, webhooks, subscriptions, lineup, chat, pings, gauges, assignments, notifications, bookmarks, bubble-up, drafts, notes,
name: basecamp description: | Interact with Basecamp via the Basecamp CLI. Full API coverage: projects, todos, cards, messages, files, schedule, check-ins, timeline, recordings, templates, webhooks, subscriptions, lineup, chat, pings, gauges, assignments, notifications, bookmarks, bubble-up, drafts, notes, calendars, and accounts. Use for ANY Basecamp question or action. triggers: # Direct invocations - basecamp - /basecamp # Resource actions - basecamp todos - basecamp project - basecamp cards - basecamp chat - basecamp campfire - basecamp messages - basecamp file - basecamp document - basecamp bookmarks - basecamp bubble-up - basecamp drafts - basecamp notes - basecamp calendars - basecamp schedule - basecamp checkin - basecamp check-in - basecamp timeline - basecamp template - basecamp webhook - basecamp gauge - basecamp assignment - basecamp notification - basecamp account # Common actions - link to basecamp - track in basecamp - post to basecamp - comment on basecamp - complete todo - mark done - create todo - move card - download file # Search and discovery - search basecamp - find in basecamp - look up basecamp - check basecamp - list basecamp - show basecamp - get from basecamp - fetch from basecamp # Questions - can I basecamp - how do I basecamp - what's in basecamp - what basecamp - does basecamp # My work - my todos - my tasks - my schedule - my basecamp - assigned to me - my assignments - my notifications - overdue todos - upcoming events - project gauge - project progress # URLs - 3.basecamp.com - basecampapi.com - https://3.basecamp.com/ invocable: true argument-hint: "[action] [args...]"
Full CLI coverage: 189 tracked in-scope endpoints across todos, cards, messages, files, schedule, check-ins, timeline, recordings, templates, webhooks, subscriptions, lineup, chat, pings, gauges, assignments, notifications, and accounts.
**MUST follow these rules:**
1. **Choose the right output mode** — `--jq` when you need to filter/extract data; `--json` for full JSON; `--md` when presenting results to a human (see Output Modes below). **Never pipe to external `jq` — use `--jq` instead.** 2. **Parse URLs first** with `basecamp url parse "<url>"` to extract IDs 3. **Comments are flat** - reply to parent recording, not to comments 4. **Check context** via `.basecamp/config.json` before assuming project 5. **Content fields accept Markdown, and most accept @mentions** — the CLI converts these rich-text fields from Markdown to HTML: message bodies, document bodies, comment content, todo descriptions, card bodies, schedule entry descriptions, upload descriptions, check-in answers and notes. Two rich-text fields are sent as written, so give them HTML: todolist descriptions and gauge needle descriptions. Chat is different again: `chat post` sends plain text unless you pass `--content-type text/html` or the line carries a mention. Use Markdown formatting (lists, bold, links, code blocks, tables) for rich content. @mentions resolve in message bodies, comment content, card bodies, schedule descriptions and chat lines — not in todo descriptions, documents, uploads, check-ins or notes. Four mention syntaxes are available (prefer deterministic for agents):
Raw HTML is also accepted, but it is all-or-nothing per field: a tag the CLI detects as HTML (`<p>`, `<ul>`, `<strong>`, `<a>`, `<img>`, `<table>` and the other common formatting tags) outside a backtick code span or backtick fence (a `~~~` fence does not hide it) skips Markdown conversion for the whole field, so any Markdown alongside it — `` included — is sent literally. The HTML itself goes through as written, except that an empty separator paragraph is inserted between directly adjacent `<p>` blocks so they render with spacing; a local path in a raw `<img src>` is still uploaded and replaced with an attachment in every converted field except notes, which take no attachments. Titles (a todo's content argument, card and message titles) are plain text and never converted.
**Table boundary:** GFM tables round-trip: they render in message/comment bodies, display converts them back to pipe tables, and the TUI in-place editors open simple grids for editing. Only **complex** tables — merged cells (colspan/rowspan), captions, extra header rows, nested tables, attachments/images or block content inside cells, multi-paragraph or multi-line cells, or a table inside a blockquote or list — refuse to open, since a GFM pipe table can't represent those shapes (edit them on Basecamp web, or replace the whole field via `messages update` / `comments update` / `todos update --description`, which take fresh content and are unaffected). Complex tables still **display** best-effort, flattened to a plain grid.
**Multiline / non-ASCII content:** do not rely on bash ANSI-C quoting (`$'...\n...'`) — it is a bash/zsh extension. Under a POSIX `/bin/sh` (dash, busybox-ash, common in sandboxes) the `$` is passed through literally and posts a stray leading `$`, and `\n` stays a literal backslash-n. Pipe the content via stdin instead, using `-` as the content argument:
printf '%s\n' '海报 mockup 方向稿:' '' '<bc-attachment ...>' | basecamp comments create <recording_id> - --in <project> --json
`-` means "read from stdin" on every content input: content-kind positionals (`comments create/update`, `messages create [body]`, `cards create [body]`, `todos cre
basecamp is the official command-line interface for Basecamp. Manage projects, todos, messages, and more from your terminal or through AI agents.
Repo: basecamp/basecamp-cli
Diagnose Basecamp CLI, authentication, and agent-plugin health.