Skip to main content
Integrations and skills are two sides of the same coin. An integration is a connected external service: your CRM, enrichment provider, messaging tool, or data warehouse. A skill is the declaration that hands an integration to your workflow. Connect once, generate typed code, then declare per job which skills the model can reach.

Integrations: stored credentials

An integration is a connection to an external service. When you run terse integrate or connect through the Terse app, the platform stores your OAuth tokens or API keys securely. The integration itself is just an authenticated link to a service. Terse supports two connection types: After connecting, run terse generate to turn your active integrations into typed code.

Code generation: from credentials to code

terse generate reads your connected integrations and their resources (repos, channels, lists, teams, projects), then writes a typed SDK file for your project. See the Generated SDK page for more detail.

Skills vs. deterministic tools

This is the key distinction: agent.tools.* mirrors the skills allowlist: only integrations declared as skills appear on the agent’s typed tool object. For unfiltered programmatic access to every connected integration, import toolbox from ./terse.generated and call it directly, no agent needed. This means you can be precise about the model’s reach for a given job, while still calling any connected integration from your handler code through toolbox:

Skill configuration

Some skills accept configuration that scopes what the model sees or where it acts: Skills without configuration give the model access to the full integration surface.

Where to go next

Skills & tools reference

Full list of every skill and the tools it exposes.

Deterministic tool calls

Call tools directly from code without the LLM.