skills/kimten-agent/SKILL.md
Build and troubleshoot lightweight Vercel AI SDK Core v6+ agents using @tabbybyte/kimten. Use when creating a small tool-calling loop, adding typed outputs, attachments, or short-term memory.
npx skillsauth add tabbybyte-technologies/kimten kimten-agentInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill when the user needs a compact, server-side agent loop based on Vercel AI SDK Core (ai) with @tabbybyte/kimten.
@tabbybyte/kimtenaizod@ai-sdk/openaibrain (required model)toys, personality, hops, and boxplay(input, context?, options?) for each task.forget() when the conversation state should be reset.import { openai } from '@ai-sdk/openai';
import Kimten from '@tabbybyte/kimten';
const agent = Kimten({
brain: openai('gpt-4o-mini'),
personality: 'You are a concise engineering assistant.',
hops: 8,
});
const answer = await agent.play('Summarize this PR in 3 bullets.');
import { openai } from '@ai-sdk/openai';
import { z } from 'zod';
import Kimten from '@tabbybyte/kimten';
const agent = Kimten({
brain: openai('gpt-4o-mini'),
personality: 'Use tools when needed and explain your result briefly.',
toys: {
randomNumber: {
description: 'Generate random integer in inclusive range.',
inputSchema: z.object({ min: z.number().int(), max: z.number().int() }),
async execute({ min, max }) {
const low = Math.min(min, max);
const high = Math.max(min, max);
return Math.floor(Math.random() * (high - low + 1)) + low;
},
},
},
});
const out = await agent.play('Pick a random number from 10 to 20.');
box)import { openai } from '@ai-sdk/openai';
import { z } from 'zod';
import Kimten from '@tabbybyte/kimten';
const agent = Kimten({
brain: openai('gpt-4o-mini'),
personality: 'Extract normalized issue data.',
box: z.object({
title: z.string(),
severity: z.enum(['low', 'medium', 'high']),
owner: z.string().nullable(),
}),
});
const issue = await agent.play('Service degraded, SLO breach, owner unknown.');
import { openai } from '@ai-sdk/openai';
import Kimten from '@tabbybyte/kimten';
const agent = Kimten({
brain: openai('gpt-4o-mini'),
personality: 'Read attachments and produce concise technical output.',
});
const report = await agent.play(
'Summarize the attached PDF and extract action items.',
{ requestId: 'req-42', source: 'weekly-review' },
{
attachments: [
{ kind: 'file', data: './weekly.pdf', mediaType: 'application/pdf' },
],
temperature: 0.2,
maxOutputTokens: 300,
}
);
inputSchema to each tool so the model receives explicit parameter shapes.box only when stable structured output is required for the full agent instance.hops bounded to avoid runaway loops.context instead of mutating shared state.box.box and keep schema minimal.toys with strict schemas.attachments and verify model capability.temperature and narrow prompts.inputSchema shape and required fields.description clarity and system personality.box schema and simplify field semantics.context.hops, simplify prompt, and reduce tool surface.personality narrow and task-specific.context for request metadata and constraints.box schema first.forget() between unrelated tasks.tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.