A modular framework for building autonomous LLM-powered coding agents.
Agent SDK is an open-source TypeScript framework for building autonomous coding agents, started before Anthropic released the Claude Code SDK. The central design decision is separating tools from where they run. Tools describe what they do, and an execution adapter handles where it happens—on your machine, in a Docker container, or in a remote E2B sandbox. You can switch environments without touching any tool code.
The framework is designed to be extended. Building a custom tool means defining what it does and registering it with the agent. Sub-agents work the same way—each one is a full agent with its own model, tools, and system prompt, but the parent treats it like any other tool it can call.
Lifecycle hooks let you run logic before and after every tool invocation. This is useful for things like capturing a screenshot after a browser navigation and feeding it back into the model, or building execution traces for debugging and evals.
import { Agent } from '@qckfx/agent';
const agent = await Agent.create({
config: {
defaultModel: 'google/gemini-2.5-pro-preview',
environment: 'local',
systemPrompt: 'You are a helpful AI assistant.',
tools: ['bash', 'file_read', 'file_edit', 'grep', 'glob'],
},
});
const result = await agent.processQuery('Refactor the auth module');
console.log(result.response);const screenshot: Tool = {
name: 'screenshot',
description: 'Capture a screenshot of the current page',
inputSchema: {
type: 'object',
properties: {
url: { type: 'string', description: 'URL to capture' },
},
required: ['url'],
},
execute: async (args, context) => {
const img = await captureScreenshot(args.url);
return { result: img };
},
};
agent.registerTool(screenshot);Tools interact with an execution adapter interface, not the environment directly. Swap between local, Docker, or remote sandboxes without changing tool code.