Oversight you choose
Autonomous, guided (approval before anything visible or hard to undo) or step by step. Switch between guided and step by step in the middle of a conversation.
Guardrails in hooks, not prompts
File scope, protected paths, Bash only for subagents, only declared subagents, always in the foreground. Enforced on every tool call.
Memory between sessions
A built-in knowledge base the agent keeps as a wiki, originals kept untouched, and every conversation resumable with --continue or /resume.
A terminal UI like Claude Code
Full screen Ink chat with live markdown, folded tool calls, approval panels, history search, file mentions, themes and four languages.
Your domain, nothing else
An AgentSpec says who the agent is and what it has: prompt, MCP servers, skills, subagents. The kit wires the session around it.
Also without a terminal
The core never touches the terminal: drive the same agent from an Electron app or a server with a normalized event stream.
A whole agent in one file
The spec says who the agent is; buildSessionOptions() turns it into the SDK's session options, with the tools, hooks and guardrails of the chosen mode; runChatInk() gives it a full screen chat whose conversations can be resumed.
import path from "node:path";
import { buildSessionOptions, ensureClaudeAuth, runChatInk, type AgentSpec, type BaseSessionConfig } from "@falkenslab/agent-kit";
const spec: AgentSpec<BaseSessionConfig> = {
buildSystemPrompt: () => "You are a pirate cat who tells jokes. Always answer in character.",
buildMcpServers: () => ({}),
pluginRoots: () => [],
buildSubagents: () => undefined,
};
await ensureClaudeAuth();
const config: BaseSessionConfig = { mode: "guided", projectDir: process.cwd() };
await runChatInk((run) => buildSessionOptions(config, run.dir, spec, { run }), {
runsDir: path.resolve(".run"),
header: { title: "My agent" },
mode: config.mode,
fullscreen: true,
});
Captain Whiskers
The kit's example agent: a retired pirate cat with a crew of subagents, its own tools and skills, a theme and its texts in four languages. Walk through it.
