productivity
Teachable CLI for AI Agents
Use the Teachable CLI from KosmoKrator to call Teachable tools headlessly, return JSON, inspect schemas, and automate workflows from coding agents, scripts, and CI.Teachable CLI Setup
Teachable can be configured headlessly with `kosmokrator integrations:configure teachable`.
# 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 teachable --set api_key="$TEACHABLE_API_KEY" --enable --read allow --write ask --json
kosmokrator integrations:doctor teachable --json
kosmokrator integrations:status --json Credentials
Authentication type: API key api_key. Configure credentials once, then reuse the same stored profile from scripts, coding CLIs, Lua, and MCP.
| Key | Env var | Type | Required | Label |
|---|---|---|---|---|
api_key | TEACHABLE_API_KEY | Secret secret | yes | API Key |
Command Patterns
The generic command is stable across every integration. The provider shortcut is shorter for humans.
kosmo integrations:call teachable.teachable_list_courses '{"page":1,"per_page":1}' --json kosmo integrations:teachable teachable_list_courses '{"page":1,"per_page":1}' --json Discovery
These commands return structured output for coding agents that need to inspect capabilities before choosing a function.
kosmo integrations:docs teachable --json
kosmo integrations:docs teachable.teachable_list_courses --json
kosmo integrations:schema teachable.teachable_list_courses --json
kosmo integrations:search "Teachable" --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.
teachable.teachable_list_courses
List courses from your Teachable school. Paginate with page/per_page parameters.
read - Parameters
- page, per_page
kosmo integrations:call teachable.teachable_list_courses '{"page":1,"per_page":1}' --json kosmo integrations:teachable teachable_list_courses '{"page":1,"per_page":1}' --json teachable.teachable_get_course
Get a single course from your Teachable school by its course ID.
read - Parameters
- course_id
kosmo integrations:call teachable.teachable_get_course '{"course_id":"example_course_id"}' --json kosmo integrations:teachable teachable_get_course '{"course_id":"example_course_id"}' --json teachable.teachable_list_users
List users from your Teachable school. Paginate with page/per_page parameters.
read - Parameters
- page, per_page
kosmo integrations:call teachable.teachable_list_users '{"page":1,"per_page":1}' --json kosmo integrations:teachable teachable_list_users '{"page":1,"per_page":1}' --json teachable.teachable_get_user
Get a single user from your Teachable school by their user ID.
read - Parameters
- user_id
kosmo integrations:call teachable.teachable_get_user '{"user_id":"example_user_id"}' --json kosmo integrations:teachable teachable_get_user '{"user_id":"example_user_id"}' --json teachable.teachable_list_enrollments
List enrollments from your Teachable school. Filter by user_id or course_id and paginate with page/per_page.
read - Parameters
- user_id, course_id, page, per_page
kosmo integrations:call teachable.teachable_list_enrollments '{"user_id":"example_user_id","course_id":"example_course_id","page":1,"per_page":1}' --json kosmo integrations:teachable teachable_list_enrollments '{"user_id":"example_user_id","course_id":"example_course_id","page":1,"per_page":1}' --json teachable.teachable_get_enrollment
Get a single enrollment from your Teachable school by its enrollment ID.
read - Parameters
- enrollment_id
kosmo integrations:call teachable.teachable_get_enrollment '{"enrollment_id":"example_enrollment_id"}' --json kosmo integrations:teachable teachable_get_enrollment '{"enrollment_id":"example_enrollment_id"}' --json teachable.teachable_get_current_user
Verify your Teachable API key and get the current user profile. Use this to confirm the integration is working.
read - Parameters
- none
kosmo integrations:call teachable.teachable_get_current_user '{}' --json kosmo integrations:teachable teachable_get_current_user '{}' --json Function Schemas
Use these parameter tables when building CLI payloads without calling integrations:schema first.
teachable.teachable_list_courses 2 parameters
kosmo integrations:schema teachable.teachable_list_courses --json | Parameter | Type | Required | Description |
|---|---|---|---|
page | integer | no | Page number for pagination (default: 1). |
per_page | integer | no | Number of courses per page (default: 25, max: 100). |
teachable.teachable_get_course 1 parameters
kosmo integrations:schema teachable.teachable_get_course --json | Parameter | Type | Required | Description |
|---|---|---|---|
course_id | string | yes | The ID of the course to retrieve. |
teachable.teachable_list_users 2 parameters
kosmo integrations:schema teachable.teachable_list_users --json | Parameter | Type | Required | Description |
|---|---|---|---|
page | integer | no | Page number for pagination (default: 1). |
per_page | integer | no | Number of users per page (default: 25, max: 100). |
teachable.teachable_get_user 1 parameters
kosmo integrations:schema teachable.teachable_get_user --json | Parameter | Type | Required | Description |
|---|---|---|---|
user_id | string | yes | The ID of the user to retrieve. |
teachable.teachable_list_enrollments 4 parameters
kosmo integrations:schema teachable.teachable_list_enrollments --json | Parameter | Type | Required | Description |
|---|---|---|---|
user_id | string | no | Filter enrollments by user ID. |
course_id | string | no | Filter enrollments by course ID. |
page | integer | no | Page number for pagination (default: 1). |
per_page | integer | no | Number of enrollments per page (default: 25, max: 100). |
teachable.teachable_get_enrollment 1 parameters
kosmo integrations:schema teachable.teachable_get_enrollment --json | Parameter | Type | Required | Description |
|---|---|---|---|
enrollment_id | string | yes | The ID of the enrollment to retrieve. |
teachable.teachable_get_current_user 0 parameters
kosmo integrations:schema teachable.teachable_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.