productivity
Basecamp 3 CLI for AI Agents
Use the Basecamp 3 CLI from KosmoKrator to call Basecamp 3 tools headlessly, return JSON, inspect schemas, and automate workflows from coding agents, scripts, and CI.Basecamp 3 CLI Setup
Basecamp 3 can be configured headlessly with `kosmokrator integrations:configure basecamp`.
# Install KosmoKrator first if it is not available on PATH.
curl -fsSL https://raw.githubusercontent.com/OpenCompanyApp/kosmokrator/main/install.sh | bash
# Configure and verify this integration.
kosmokrator integrations:configure basecamp --set access_token="$BASECAMP_ACCESS_TOKEN" --set account_id="$BASECAMP_ACCOUNT_ID" --enable --read allow --write ask --json
kosmokrator integrations:doctor basecamp --json
kosmokrator integrations:status --json Credentials
Authentication type: Manual OAuth token oauth2_manual_token. Configure credentials once, then reuse the same stored profile from scripts, coding CLIs, Lua, and MCP.
| Key | Env var | Type | Required | Label |
|---|---|---|---|---|
access_token | BASECAMP_ACCESS_TOKEN | Secret secret | yes | Access Token |
account_id | BASECAMP_ACCOUNT_ID | Text string | yes | Account ID |
url | BASECAMP_URL | URL url | no | API Base URL |
Command Patterns
The generic command is stable across every integration. The provider shortcut is shorter for humans.
kosmo integrations:call basecamp.basecamp_list_projects '{}' --json kosmo integrations:basecamp basecamp_list_projects '{}' --json Discovery
These commands return structured output for coding agents that need to inspect capabilities before choosing a function.
kosmo integrations:docs basecamp --json
kosmo integrations:docs basecamp.basecamp_list_projects --json
kosmo integrations:schema basecamp.basecamp_list_projects --json
kosmo integrations:search "Basecamp 3" --json
kosmo integrations:list --json Automation Contexts
The same configured command surface works in these environments. The command does not change unless the host wrapper, credentials, or permissions change.
CLI Functions
Every function below can be called headlessly. Commands are highlighted, copyable, and scroll horizontally when payloads are long.
basecamp.basecamp_list_projects
List all Basecamp projects visible to the authenticated user. Returns project names, IDs, descriptions, and creation dates.
read - Parameters
- none
kosmo integrations:call basecamp.basecamp_list_projects '{}' --json kosmo integrations:basecamp basecamp_list_projects '{}' --json basecamp.basecamp_get_project
Get details for a single Basecamp project by ID. Returns the project name, description, members, and metadata.
read - Parameters
- project_id
kosmo integrations:call basecamp.basecamp_get_project '{"project_id":1}' --json kosmo integrations:basecamp basecamp_get_project '{"project_id":1}' --json basecamp.basecamp_list_todos
List to-dos in a Basecamp to-do list. Requires the project ID, to-do set ID, and to-do list ID. Returns to-do items with their content, completion status, assignees, and due dates.
read - Parameters
- project_id, todoset_id, todolist_id
kosmo integrations:call basecamp.basecamp_list_todos '{"project_id":1,"todoset_id":1,"todolist_id":1}' --json kosmo integrations:basecamp basecamp_list_todos '{"project_id":1,"todoset_id":1,"todolist_id":1}' --json basecamp.basecamp_create_todo
Create a new to-do in a Basecamp to-do list. Specify the project, to-do set, to-do list, and to-do text. Optionally include a description, due date, and assignee IDs.
write - Parameters
- project_id, todoset_id, todolist_id, content, description, due_on, assignee_ids
kosmo integrations:call basecamp.basecamp_create_todo '{"project_id":1,"todoset_id":1,"todolist_id":1,"content":"example_content","description":"example_description","due_on":"example_due_on","assignee_ids":"example_assignee_ids"}' --json kosmo integrations:basecamp basecamp_create_todo '{"project_id":1,"todoset_id":1,"todolist_id":1,"content":"example_content","description":"example_description","due_on":"example_due_on","assignee_ids":"example_assignee_ids"}' --json basecamp.basecamp_list_messages
List messages (message board posts) for a Basecamp project. Returns message subjects, content excerpts, authors, and timestamps.
read - Parameters
- project_id
kosmo integrations:call basecamp.basecamp_list_messages '{"project_id":1}' --json kosmo integrations:basecamp basecamp_list_messages '{"project_id":1}' --json basecamp.basecamp_get_message
Get a single message from a Basecamp project by ID. Returns the full message subject, content, author, and metadata.
read - Parameters
- project_id, message_id
kosmo integrations:call basecamp.basecamp_get_message '{"project_id":1,"message_id":1}' --json kosmo integrations:basecamp basecamp_get_message '{"project_id":1,"message_id":1}' --json basecamp.basecamp_get_current_user
Get the profile of the currently authenticated Basecamp user. Returns name, email, avatar, and account details.
read - Parameters
- none
kosmo integrations:call basecamp.basecamp_get_current_user '{}' --json kosmo integrations:basecamp basecamp_get_current_user '{}' --json Function Schemas
Use these parameter tables when building CLI payloads without calling integrations:schema first.
basecamp.basecamp_list_projects 0 parameters
kosmo integrations:schema basecamp.basecamp_list_projects --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
basecamp.basecamp_get_project 1 parameters
kosmo integrations:schema basecamp.basecamp_get_project --json | Parameter | Type | Required | Description |
|---|---|---|---|
project_id | integer | yes | The Basecamp project ID. |
basecamp.basecamp_list_todos 3 parameters
kosmo integrations:schema basecamp.basecamp_list_todos --json | Parameter | Type | Required | Description |
|---|---|---|---|
project_id | integer | yes | The Basecamp project ID. |
todoset_id | integer | yes | The to-do set (bucket) ID within the project. Typically found in the project's "todolists" tool. |
todolist_id | integer | yes | The specific to-do list ID to retrieve to-dos from. |
basecamp.basecamp_create_todo 7 parameters
kosmo integrations:schema basecamp.basecamp_create_todo --json | Parameter | Type | Required | Description |
|---|---|---|---|
project_id | integer | yes | The Basecamp project ID. |
todoset_id | integer | yes | The to-do set (bucket) ID within the project. |
todolist_id | integer | yes | The specific to-do list ID to add the to-do to. |
content | string | yes | The to-do text (e.g., "Review pull request"). |
description | string | no | Extended description for the to-do. Supports HTML formatting. |
due_on | string | no | Due date in ISO 8601 format (e.g., "2026-04-30"). |
assignee_ids | array | no | List of person IDs to assign (e.g., [1234, 5678]). |
basecamp.basecamp_list_messages 1 parameters
kosmo integrations:schema basecamp.basecamp_list_messages --json | Parameter | Type | Required | Description |
|---|---|---|---|
project_id | integer | yes | The Basecamp project ID. |
basecamp.basecamp_get_message 2 parameters
kosmo integrations:schema basecamp.basecamp_get_message --json | Parameter | Type | Required | Description |
|---|---|---|---|
project_id | integer | yes | The Basecamp project ID. |
message_id | integer | yes | The message (board post) ID. |
basecamp.basecamp_get_current_user 0 parameters
kosmo integrations:schema basecamp.basecamp_get_current_user --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
Permissions
Headless calls still follow the integration read/write permission policy. Configure read/write defaults with
integrations:configure. Add --force only for trusted automation that should bypass that policy.