Skip to main content

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.

GitHub

Read-only access to repositories.
skills: [Skills.github({ repos: [Repos.MyOrg.MyRepo] })]
ToolDescriptionAccess
search_codeSearch code across repositoriesRead
grep_codeGrep-like code searchRead
read_fileRead file contentsRead
list_directoryList directory contentsRead
list_pull_requestsList pull requestsRead
list_commitsList commitsRead
summarize_pull_request_diffSummarize PR changesRead

Slack

Send messages and read conversations.
skills: [Skills.slack({ channel: SlackChannel.Engineering })]
ToolDescriptionAccess
slack_send_messageSend to a channel, an existing DM (channelId), or a member 1:1 (slackUserId)Write
slack_list_usersList workspace usersRead
slack_list_channelsList channelsRead
slack_read_conversationRead conversation historyRead
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.

Linear

Create, update, and search issues.
skills: [Skills.linear()]
ToolDescriptionAccess
linear_search_ticketsSearch ticketsRead
linear_get_teamsList teamsRead
linear_get_statesGet issue statesRead
linear_get_labelsGet available labelsRead
linear_get_projectsList projectsRead
linear_get_usersList team membersRead
linear_read_ticketRead ticket detailsRead
linear_create_ticketCreate a new ticketWrite
linear_update_ticketUpdate a ticketWrite
linear_add_commentAdd a comment to a ticketWrite

Attio

Query and manage CRM records.
skills: [Skills.attio({ object: AttioObject.People })]
ToolDescriptionAccess
attio_list_objectsList available objectsRead
attio_query_recordsQuery recordsRead
attio_upsert_recordCreate or update a recordWrite

Notion

Read and write databases and pages.
skills: [Skills.notion()]
ToolDescriptionAccess
notion_get_schemaGet database schemaRead
notion_query_databaseQuery a databaseRead
notion_query_pageQuery page contentRead
notion_list_usersList workspace usersRead
notion_create_or_update_database_rowCreate or update database rowsWrite
notion_create_or_update_pageCreate or update standalone pagesWrite
notion_modify_blocksModify page blocksWrite

Gmail

Send emails and create drafts.
skills: [Skills.gmail()]
ToolDescriptionAccess
gmail_send_emailSend emails or reply to threadsWrite
gmail_create_draftCreate draft emails for human reviewWrite

Snowflake

Read-only SQL query execution.
skills: [Skills.snowflake()]
ToolDescriptionAccess
snowflake_explain_queryExplain query execution planRead
snowflake_execute_queryExecute SELECT queries (requires approval)Read

Datadog

Read-only access to logs and RUM events.
skills: [Skills.datadog()]
ToolDescriptionAccess
search_datadog_logsSearch logsRead
list_rum_eventsList RUM eventsRead
search_rum_eventsSearch RUM eventsRead
aggregate_rum_eventsAggregate RUM event dataRead

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 })]
ToolDescriptionAccess
search_posthog_logsSearch logsRead
search_posthog_sessionsSearch sessionsRead
get_posthog_session_eventsGet events for a sessionRead
search_posthog_eventsSearch eventsRead

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"] })]
ToolDescriptionAccess
list_launchdarkly_flagsList feature flagsRead
get_launchdarkly_flag_detailsGet flag detailsRead

WorkOS

Read-only access to users and organizations.
skills: [Skills.workOS()]
ToolDescriptionAccess
list_workos_usersList usersRead
list_workos_organizationsList organizationsRead
get_workos_userGet user detailsRead

Terse (built-in)

Web search and image tools available to all workflows.
skills: [Skills.web()]
ToolDescriptionAccess
web_searchSearch the webRead
web_extractExtract and process web page contentRead
web_researchResearch and synthesize web informationRead
edit_imageEdit and manipulate imagesRead