Skip to content

Implementation guide

Skills, tools, and usage

Discover capabilities, create reusable skills, and inspect account usage.

Browse developer docs

Current: Skills and integrations

Discover skills and tools

typescript

const skills = await client.listSkills({ query: 'company', limit: 50 });
const tools = await client.listIntegrations({ query: 'company', limit: 50 });
const agent = client.agent({
  name: 'Verifier', instructions: 'Verify companies with primary sources.',
  skills: skills.skills.map(skill => skill.name),
  tools: tools.tools.filter(tool => !tool.always_on).map(tool => tool.name),
});

python

skills = client.list_skills(query="company", limit=50)
tools = client.list_integrations(query="company", limit=50)
record = client.create_agent(
    name="Verifier", instructions="Verify companies with primary sources.",
    skills=[skill["name"] for skill in skills["skills"]],
    tools=[tool["name"] for tool in tools["tools"] if not tool.get("always_on")],
)
agent = client.agent(record["id"])

Use catalog names exactly as returned. Integration discovery does not establish credentials for external tools; account access still applies.

Create a reusable skill

typescript

const skill = await client.createSkill({
  name: 'source-check', description: 'Verify claims against primary sources.',
  content: '# Source check\nCite primary evidence and flag gaps.',
});
const content = await client.getSkill(skill.name);

python

skill = client.create_skill(
    name="source-check", description="Verify claims against primary sources.",
    content="# Source check\nCite primary evidence and flag gaps.",
)
content = client.get_skill(skill["name"])

Attach skill.name in TypeScript or skill["name"] in Python to a saved definition's skills list. Reusing the name updates your own existing skill; use a new name to preserve the previous version. This requires experts:write.

Account usage

typescript

const usage = await client.getUsage();
console.log(usage);

python

usage = client.get_usage()
print(usage)

Usage requires billing:read. Read account usage together with batch credit limits; a recurring loop's credit limit applies to each occurrence, not its lifetime.