Documentation Index
Fetch the complete documentation index at: https://docs.useterse.ai/llms.txt
Use this file to discover all available pages before exploring further.
Skills define what integrations your workflow can interact with. Each skill exposes a set of tools that the agent can call (via agentic loops) or that you can call deterministically (via agent.tools.*).
In TypeScript, terse generate writes a single Skills object in src/terse.generated.ts. Import Skills and call the nested factories (for example Skills.github({ repos: [...] }), Skills.slack({ channel: ... })). Built-in capabilities use Skills.web() and Skills.imageEdit() instead of a separate Terse export.
Read-only access to repositories.
skills: [Skills.github({ repos: [Repos.MyOrg.MyRepo] })]
| Tool | Description | Access |
|---|
search_code | Search code across repositories | Read |
grep_code | Grep-like code search | Read |
read_file | Read file contents | Read |
list_directory | List directory contents | Read |
list_pull_requests | List pull requests | Read |
list_commits | List commits | Read |
summarize_pull_request_diff | Summarize PR changes | Read |
Send messages and read conversations.
skills: [Skills.slack({ channel: SlackChannel.Engineering })]
| Tool | Description | Access |
|---|
slack_send_message | Send to a channel, an existing DM (channelId), or a member 1:1 (slackUserId) | Write |
slack_list_users | List workspace users | Read |
slack_list_channels | List channels | Read |
slack_read_conversation | Read conversation history | Read |
For slack_send_message, pass channelId (public/private channel id, or an existing DM channel id) or slackUserId (a member id, Uā¦). Terse opens the DM if needed. If you pass both, channelId wins and the message goes there. After terse generate, use SlackChannel.*.channelId and SlackUser.*.userId from src/terse.generated.ts instead of hand-copying ids.
Create, update, and search issues.
skills: [Skills.linear()]
| Tool | Description | Access |
|---|
linear_search_tickets | Search tickets | Read |
linear_get_teams | List teams | Read |
linear_get_states | Get issue states | Read |
linear_get_labels | Get available labels | Read |
linear_get_projects | List projects | Read |
linear_get_users | List team members | Read |
linear_read_ticket | Read ticket details | Read |
linear_create_ticket | Create a new ticket | Write |
linear_update_ticket | Update a ticket | Write |
linear_add_comment | Add a comment to a ticket | Write |
Query and manage CRM records.
skills: [Skills.attio({ object: AttioObject.People })]
| Tool | Description | Access |
|---|
attio_list_objects | List available objects | Read |
attio_query_records | Query records | Read |
attio_upsert_record | Create or update a record | Write |
Read and write databases and pages.
skills: [Skills.notion()]
| Tool | Description | Access |
|---|
notion_get_schema | Get database schema | Read |
notion_query_database | Query a database | Read |
notion_query_page | Query page content | Read |
notion_list_users | List workspace users | Read |
notion_create_or_update_database_row | Create or update database rows | Write |
notion_create_or_update_page | Create or update standalone pages | Write |
notion_modify_blocks | Modify page blocks | Write |
Send emails and create drafts.
| Tool | Description | Access |
|---|
gmail_send_email | Send emails or reply to threads | Write |
gmail_create_draft | Create draft emails for human review | Write |
Snowflake
Read-only SQL query execution.
skills: [Skills.snowflake()]
| Tool | Description | Access |
|---|
snowflake_explain_query | Explain query execution plan | Read |
snowflake_execute_query | Execute SELECT queries (requires approval) | Read |
Datadog
Read-only access to logs and RUM events.
skills: [Skills.datadog()]
| Tool | Description | Access |
|---|
search_datadog_logs | Search logs | Read |
list_rum_events | List RUM events | Read |
search_rum_events | Search RUM events | Read |
aggregate_rum_events | Aggregate RUM event data | Read |
PostHog
Read-only access to product analytics.
import { PosthogProject, Skills } from "./terse.generated"
// Use a `PosthogProject.*` static emitted for your workspace (open `terse.generated.ts` and autocomplete `PosthogProject.`).
skills: [Skills.posthog({ project: PosthogProject.MyTeam })]
| Tool | Description | Access |
|---|
search_posthog_logs | Search logs | Read |
search_posthog_sessions | Search sessions | Read |
get_posthog_session_events | Get events for a session | Read |
search_posthog_events | Search events | Read |
LaunchDarkly
Read-only access to feature flags.
import { LaunchDarklyProject, Skills } from "./terse.generated"
// Use a `LaunchDarklyProject.*` static emitted for your workspace.
skills: [Skills.launchDarkly({ project: LaunchDarklyProject.MyFlags, environmentKeys: ["production"] })]
| Tool | Description | Access |
|---|
list_launchdarkly_flags | List feature flags | Read |
get_launchdarkly_flag_details | Get flag details | Read |
Read-only access to users and organizations.
skills: [Skills.workOS()]
| Tool | Description | Access |
|---|
list_workos_users | List users | Read |
list_workos_organizations | List organizations | Read |
get_workos_user | Get user details | Read |
Terse (built-in)
Web search and image tools available to all workflows.
| Tool | Description | Access |
|---|
web_search | Search the web | Read |
web_extract | Extract and process web page content | Read |
web_research | Research and synthesize web information | Read |
edit_image | Edit and manipulate images | Read |