basecamp-doctor
Diagnose Basecamp CLI, authentication, and agent-plugin health.
Connect a Basecamp agent to this computer and manage the local agent connector's setup: the agent's credential (basecamp auth agent connect), connect.json (who may drive the agent, which project routes to which directory), and readiness (basecamp connect setup). Explains every
$ npx -y skills add basecamp/basecamp-cli --skill basecamp-connect --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/basecamp-connectContext preview
The summary Claude sees to decide when to auto-load this skill.
Connect a Basecamp agent to this computer and manage the local agent connector's setup: the agent's credential (basecamp auth agent connect), connect.json (who may drive the agent, which project routes to which directory), and readiness (basecamp connect setup). Explains every
name: basecamp-connect description: | Connect a Basecamp agent to this computer and manage the local agent connector's setup: the agent's credential (basecamp auth agent connect), connect.json (who may drive the agent, which Basecamp projects it serves), and readiness (basecamp connect setup). Explains every setup result and failure. Also reads what the connector ran (status, doctor) and carries out a person's decisions on its records (redispatch, discard, release, the cutover's shadow promote and import). Starting and supervising the connector is not in this skill yet. Use when asked to connect an agent, set up or change the connector, add or remove a project, change who can drive the agent, find out why setup says the connector is not ready, or see, retry, close or release what the connector holds. triggers: - /basecamp-connect - connect an agent - set up the connector - basecamp connect setup - basecamp auth agent connect - connect.json - serve a project - who can drive the agent - connector not ready - basecamp connect status - basecamp connect doctor - redispatch an event - held records - release the hold
The local agent connector lets people in Basecamp hand work to a coding agent on this computer. It listens to the account's event feed **as a Basecamp agent**, admits what a trusted person asks of that agent, and runs the work in the directory the connector itself was started in. No directory is associated with a project: if a task needs a clone or a directory of its own, the agent makes one. The agent replies in Basecamp as itself.
You manage it for the person. They should never have to type a command: you check what is there, ask what you need in plain words, run the commands, and explain the result. This skill is the reference you do that from.
| Command | Owns | Run it when | |---------|------|-------------| | `basecamp auth agent connect -P '<profile>'` | The agent's **credential**, stored under a CLI profile | The profile does not exist yet, or the person agrees to replace its Agent credential | | `basecamp connect setup -P '<profile>'` | **Policy and readiness**: connect.json and the checks | First setup after the credential, and every change to trust or served projects |
Setup does not obtain a credential.
one, so running it again is always safe for the credential. (An access token that expires is minted or renewed as by any command.)
setup with no flags to check the new credential against connect.json. Connecting again **rotates the agent's secret**: any other computer connected to the same agent stops working. Do it only when the person agrees.
changes nothing.
`--expect-identity`; the division is the same.
**Credentials**
conversation, and never put one in a flag, an environment variable or a file.
bot-user path `basecamp profile create` / `basecamp auth login` with `--expect-identity`. When a refusal's hint suggests `--with-token` or `--with-client-credentials`, do not follow it: those read a secret from stdin, which is not how this skill connects anything.
computer. Show them in this conversation only; never post them to Basecamp, chat, a file or anywhere else. Whoever approves that code chooses which agent this computer acts as.
`BASECAMP_TOKEN` is set. Tell the person to unset it in their shell; do not set, print or work around it.
**Identity.** Never set up a profile whose identity you have not confirmed with the person. Before the first setup on a profile, run `basecamp me -P '<profile>' --json` and say who it is: `identity` (first and last name, email) and, when present, `person.name` and `person.id`. Go on only when the person says that is the agent. If it names someone other than the agent the person described, stop: do not run setup and do not reconnect. Tell the person who the credential is and let them decide. After setup, check `data.agent_person_id` matches `person.id` when `me` reported one.
**Shell quoting.** Two kinds of value go into commands, and each has one rule:
digits only. Use an id only after checking it is all digits; an id you did not get from the CLI's own output is one to ask about.
anything the person typed. Write a single quote inside a value as `'\''`. Fixed words from this skill (`operator`, `spawn`, `90m`) need no quotes. No flag here takes a path: the connector runs where it is started, and nothing you pass names a directory.
Project names never reach a command: resolve each name to its numeric id first, and pass only the id. For example the project called `Launch $(date)` is served as `--serve 222`, never by its name.
**Interactive logins.** `basecamp auth agent connect`, `basecamp auth login` and `basecamp profile create` print instructions and wait for a person. Run them without `--json`, `--agent` or `--quiet` (they refuse machine output), and without `BASECAMP_NONINTERACTIVE` set (unset it for that one comm
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.
Interact with Basecamp via the Basecamp CLI. Full API coverage: projects, todos, cards, messages, files, schedule, check-ins, timeline, recordings, templates,…