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.