* feat(desktop): route /team prompts through core runtime Rewrite desktop `/team` commands as structured user command blocks before sending them to the core runtime. Validate task input and respect the globally disabled Teams tool setting. Remove legacy agent spawn and team enablement flags from session configuration, and add coverage for prompt rewriting and disabled-tool behavior. * fix(desktop): preserve team tool defaults * fix(desktop): display queued /team prompts as their slash form Queued prompts are stored in their runtime form, so a queued /team command showed its raw <user_command> envelope in the prompt queue chip and edit textarea. Fold queue items through formatDisplayUserInput for display; saving an edit re-resolves the slash form through the sidecar, so the round trip is lossless. Co-authored-by: Saoud Rizwan <saoudrizwan@users.noreply.github.com> * chore(hub): align builtin tool catalog flags with the desktop sidecar The desktop sidecar pins enableSpawnAgent/enableAgentTeams when listing the builtin tool catalog; the hub's parallel listing did not, so the two would drift if the preset defaults ever change. Pin the same flags in the hub and cross-reference the two call sites. Co-authored-by: Saoud Rizwan <saoudrizwan@users.noreply.github.com> * chore(desktop): drop inert enableSpawn/enableTeams config leftovers buildCoreSessionConfig no longer reads these keys, so remove the dead schema fields, default-config initializers, and chat-test payload entries. The chat-session regression test still sends them on purpose to prove legacy flags cannot override the runtime's tool presets. Co-authored-by: Saoud Rizwan <saoudrizwan@users.noreply.github.com> * fix(desktop): reject /team when the mode's tool preset disables teams The /team guard only checked the global disabled-tools setting, but the runtime resolves tool availability from the mode's preset, so a preset without team tools (yolo) would still send the model a spawn-a-team instruction it cannot act on. Resolve the teams catalog entry for the session's mode and reject /team when it is unavailable, mirroring the runtime's own availability logic. Co-authored-by: Saoud Rizwan <saoudrizwan@users.noreply.github.com> --------- Co-authored-by: Saoud Rizwan <7799382+saoudrizwan@users.noreply.github.com> Co-authored-by: Saoud Rizwan <saoudrizwan@users.noreply.github.com>
Cline SDK Examples
Learn how to build with the Cline SDK through working examples, ordered from simple to complex.
SDK Skill
If you use a coding agent (Claude Code, Codex, Cline, etc.), install the Cline SDK skill to give your agent context on the SDK's APIs and best practices to help you build with the Cline SDK.
npx skills add cline/sdk-skill
Prompt it to scaffold agents, create custom tools, wire up plugins, configure providers, and more.
Getting started
All examples live in this directory. Each is a standalone project with its own package.json and README. To run any example:
cd apps/examples/<example-name>
bun install
bun run build:sdk
export CLINE_API_KEY="cline_..."
bun dev
Requires Node.js 22+.
Examples
Beginner
| Example | Description | Concepts |
|---|---|---|
| quickstart | Send one prompt, stream the response. ~15 lines of code. | Agent, subscribe, run() |
| cli-agent | Interactive terminal chat with a shell tool. | createTool, multi-turn run()/continue(), streaming |
| cline-core-cli-agent | Interactive terminal chat powered by ClineCore. | ClineCore.create(), cline.start(), cline.send(), built-in tools, streaming |
Intermediate
| Example | Description | Concepts |
|---|---|---|
| code-review-bot | AI code reviewer that reads git diffs and produces structured comments. | Multiple tools, completesRun lifecycle, systemPrompt, zod schemas |
| multi-agent | Web app that fans out to three specialist agents in parallel, streams results via SSE, then synthesizes a unified answer. | Concurrent agents, Promise.all, per-agent subscribe(), SSE streaming, agent composition |
Advanced
| Example | Description | Concepts |
|---|---|---|
| desktop-app | Full Tauri + Next.js desktop app for running and inspecting chat sessions. | Sidecar runtime, websocket transport, session persistence |
| menubar | macOS menu bar app with Tauri. | Native app integration, compact UI |
| vscode | VS Code extension with chat panel. | Extension API, webview, workspace context |
SDK packages
When building your own app, install the public SDK package:
npm add @cline/sdk
@cline/sdk re-exports everything from @cline/core. You only need @cline/agents or @cline/llms if you want lower-level control over the agent runtime or model gateway directly.
Learn more
- SDK package docs
- Architecture guide
- Plugin examples - extend the Cline SDK and CLI with custom tools and event hooks
- Hook examples - lifecycle hooks for logging, blocking, and injection for Cline SDK and CLI