KosmoKrator

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, configure, and verify
# 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.

KeyEnv varTypeRequiredLabel
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.

Generic CLI call
kosmo integrations:call basecamp.basecamp_list_projects '{}' --json
Provider shortcut
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.

Discovery commands
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 read
Parameters
none
Generic call
kosmo integrations:call basecamp.basecamp_list_projects '{}' --json
Shortcut
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 read
Parameters
project_id
Generic call
kosmo integrations:call basecamp.basecamp_get_project '{"project_id":1}' --json
Shortcut
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 read
Parameters
project_id, todoset_id, todolist_id
Generic call
kosmo integrations:call basecamp.basecamp_list_todos '{"project_id":1,"todoset_id":1,"todolist_id":1}' --json
Shortcut
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 write
Parameters
project_id, todoset_id, todolist_id, content, description, due_on, assignee_ids
Generic call
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
Shortcut
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 read
Parameters
project_id
Generic call
kosmo integrations:call basecamp.basecamp_list_messages '{"project_id":1}' --json
Shortcut
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 read
Parameters
project_id, message_id
Generic call
kosmo integrations:call basecamp.basecamp_get_message '{"project_id":1,"message_id":1}' --json
Shortcut
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 read
Parameters
none
Generic call
kosmo integrations:call basecamp.basecamp_get_current_user '{}' --json
Shortcut
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
Schema command
kosmo integrations:schema basecamp.basecamp_list_projects --json
ParameterTypeRequiredDescription
No parameters.
basecamp.basecamp_get_project 1 parameters
Schema command
kosmo integrations:schema basecamp.basecamp_get_project --json
ParameterTypeRequiredDescription
project_id integer yes The Basecamp project ID.
basecamp.basecamp_list_todos 3 parameters
Schema command
kosmo integrations:schema basecamp.basecamp_list_todos --json
ParameterTypeRequiredDescription
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
Schema command
kosmo integrations:schema basecamp.basecamp_create_todo --json
ParameterTypeRequiredDescription
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
Schema command
kosmo integrations:schema basecamp.basecamp_list_messages --json
ParameterTypeRequiredDescription
project_id integer yes The Basecamp project ID.
basecamp.basecamp_get_message 2 parameters
Schema command
kosmo integrations:schema basecamp.basecamp_get_message --json
ParameterTypeRequiredDescription
project_id integer yes The Basecamp project ID.
message_id integer yes The message (board post) ID.
basecamp.basecamp_get_current_user 0 parameters
Schema command
kosmo integrations:schema basecamp.basecamp_get_current_user --json
ParameterTypeRequiredDescription
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.