Keeps the root docs/ site in sync with code changes before a PR is created. Spawn this whenever you are about to run gh pr create (the doc-sync PreToolUse hook will block PR creation until it has run for the current HEAD). It reviews the branch diff vs master, decides whether the change is user-facing enough to…
Use for ANY work on an agent channel transport — creating a new channel under internal/agents/channels/ / (Slack, Telegram, Discord, …), refactoring an existing one, fixing bugs in event fan-out / approval flow / hot-reload, or touching the registry, setup composer, or shared interfaces in internal/agents/channels.…
Use for ANY work on agent resource limits or usage analytics — the memory guard, CPU/IO/task contention controls, OOM detection and reporting, the Resources page, usage history sampling and retention, spawn admission, or wick memory report. Covers internal/agents/provider/{memscope,oomscore}…
Every exported field in a Config / Configs struct that carries a wick:"..." tag becomes one editable row in the configs table at boot time, scoped to that module's key. Fields without a tag are ignored.
Use for ANY work on a connector in the wick core repo — creating a new connector under internal/connectors/, refactoring/improving an existing one, fixing bugs, adding operations, editing the Configs or per-op Input structs, or touching anything that affects the MCP surface (internal/mcp/) or the registry…
Use when creating or editing any UI component, styling, button, input, form, card, modal, or layout. Enforces the project design system — Inter font, 8-pixel grid, green/navy palette, named color tokens, dark/light theming, responsive layout, and icon/spacing rules.
Use when a connector handles credentials, tokens, or any value the LLM should carry between calls without ever seeing the plaintext. Covers the secret tag (auto-mask), manual c.Mask / c.MaskIgnoreCase for dynamic response data, the wickenc token format, per-user keys, and the MCP redirect tools (wickencrypt…
Use for ANY work on the Svelte SPAs or shared FE libraries under fe/ — adding or editing a component, writing API calls, creating a new SPA workspace, porting templ-embedded JS into a SPA, wiring a new route, or extracting shared code. Covers the npm-workspaces layout (fe/common/ shared libs + fe/agents/ SPAs), the…
Use when building, packaging, or releasing a connector (or later a tool/job) as an EXTERNAL wick PLUGIN — a separate binary in the plugins monorepo that wick downloads and runs over gRPC, instead of an in-tree module compiled into wick. Covers the plugins repo layout (one folder per plugin under connector/ /), the…
Use for ANY work on a tool OR job in the repo — creating new, improving/refactoring existing, fixing bugs, editing view/handler/service/JS, adding features, or touching anything under internal/tools/{tool}/ or internal/jobs/{job}/. Covers both surfaces because they share the same Config reflection, the same wick:"..."…
Use for ANY work on a workflow node type — creating a new node executor under internal/agents/workflow/nodes/, refactoring/improving an existing one, adding fields to a node's schema, or wiring the executor into setup/manager.go. Covers the full executor contract — workflow.Executor interface, engine.NodeDescriptor…
AI Router embeds one or more local LLM router/proxy dashboards inside wick — accessible with no shell access and no exposed port. Today it ships two backends you can run side by side and switch between.
The agent pool (Pool & Sessions) caps how many agent processes run at once. It has no idea how much RAM any one of them uses — an idle agent at 150 MB and one driving a browser at 2 GB count as the same slot. A single runaway agent (a browser leak, a bad loop) can take the whole machine down with it, wick included.
The pool caps how many agent subprocesses run at once across all sessions, FIFO-queues the rest, kills idle ones, and revives them with --resume when new messages arrive.
A project bundles a folder with its defaults. One project = 1 folder + defaults + pinned sessions + a display name and icon. Sessions belong to a project; the project's folder is the cwd the agent subprocess runs in.
A provider type is an AI CLI: claude, codex, gemini (provider.go:36-40). A provider instance is a configured copy of one. Multiple instances per type are supported — same claude binary, different env vars (e.g. two PATs).
A scheduled message injects a message into an agent session at a future time — one-shot or recurring — without spinning up the workflow engine. Use it for "check back in 20 minutes," a daily standup nudge, or any cadence a chat session should just remember on its own.
The Skills Manager is a built-in UI for browsing, previewing, syncing, and deleting skill files (.md prompt files) across all agent skill directories on the host.
The Source Control panel is a VSCode-style SCM sidebar mounted on the session detail page (/tools/agents/sessions/ ). It lets you stage, commit, push, pull, view diffs, and browse history for any git repositories inside the session's working directory — without leaving the chat.