AgentKit
DocsKitsCLI ReferenceDesktop App
BetaYou are reading docs for the beta channel (3.0.0-beta.15). Features may change before the next stable release.Switch to stable →

Desktop app

Interface overview

Learn the AgentKit Desktop window layout, the sidebar groups, and how to read the Dashboard before you manage anything.

After this page you will recognize the main regions of the Desktop window, know which sidebar group holds each surface, and understand what the Dashboard numbers do and do not mean.

Screenshot provenance: the images on this page were captured from Desktop 2.5.0-beta.32 on 2026-08-01. This page describes the current Beta docs contract independently of those images. They have not been recaptured or visually verified against the current Desktop build, so labels and layout may differ.

Read the window layout

The window has three fixed regions: a left sidebar for navigation, a top bar for the current location and filters, and the main panel for the selected surface. A status row at the bottom of the sidebar shows the App and CLI versions and the local sync indicator. On a wide enough window, a collapsible Assistant rail sits on the right edge for bring-your-own-key chat about your local usage.

AgentKit Desktop Dashboard with token, session, and project charts

The sidebar groups surfaces by purpose:

GroupSurfacesWhat it covers
OverviewOverview, DashboardYour next steps from local evidence, and the usage statistics
EntitiesKits, Subagents, Commands, Hooks, Skills, MCP Servers, SessionsThe installed AgentKit building blocks and recorded session evidence
ProjectsAll Projects, Plans, Journals, and your registered projectsPer-project state, plan tracking, and journals
SystemInsights, Activity, License, Devices, Secrets, Security, Feedback, Settings, Status Line, MigrateLocal diagnostics, the secrets vault, app configuration, and maintenance workflows

The top bar shows the breadcrumb for the current surface, a runtime filter, and search. Selecting a registered project in the sidebar opens its project dashboard rather than a global view.

Press Cmd+K on macOS or Ctrl+K on Windows and Linux, or select the search control, to open the search palette. It finds pages, including Overview and Dashboard, as well as projects, agents, commands, and skills, in the interface language you chose. Use the arrow keys to move, Enter to open a result, and Esc to close. If one of those sources cannot be read, the palette says Some search sources could not load and still shows results from the rest.

The bell in the top bar opens Notifications. It flags an available AgentKit update, a project whose files drifted from its kit manifest, and failed runs or writes among the 50 newest Activity events; a red badge counts unread items. Selecting an item marks it read and opens Settings, Projects, or Activity, where you can resolve it. Dismiss hides it. Read and dismissed state is stored under AGENTKIT_HOME, so Desktop and the browser dashboard share it. With nothing to act on, the panel shows Nothing to flag.

Secrets appears only in the Desktop app, not in the browser dashboard. A few other pages carry details worth knowing about:

  • Profile shows a Builder card with aggregate figures (Sessions, Tokens, Skill runs, Active days, top skills, and top agents) and an activity grid covering the last 26 weeks. The card is meant to be shared, so it never includes your email, project names, paths, or session content. Top skills are named only when an installed AgentKit kit ships them; custom and project skills keep their counts under a generic Custom skill label. Download PNG saves it as an image and Copy image copies it.
  • Feedback lists the reports you filed from this machine under Your reports; see Settings and system.
  • Activity has Events and Stats views. Events lists skill runs and writes, including write.completed and write.failed events from kit installs and updates, migrations, config writes, hook toggles, and MCP links; filter by event kind. Below it, Snapshots lists the runtime-home snapshots taken before some writes, such as kit installs, updates, and uninstalls, migrations, ak new, and session redaction. Each row shows its time, file count, and size. Restoring stays a CLI action because it overwrites anything changed since the snapshot, so Copy restore command copies the exact command for you to review and run. A snapshot with no CLI restore path shows where its captured data is stored instead. Config writes and MCP links keep their own single-file backup and are not listed.
  • A session's detail shows its Git branch, Working directory, and Worktree, or not recorded when the session file does not say. Its Applied kits list shows the Kits installed now, not the set that was active when the session started, because a session file does not record it.

Start from the Overview

Desktop opens on Overview, which collects your next steps from local records. The usage statistics moved to Dashboard, directly below it in the sidebar. Overview has five panels:

PanelWhat it lists
Needs your attentionRecorded failures, such as an automatic update or scheduled content that failed
Continue your plansPlans that are not completed or cancelled, with checklist progress and a link to open each one
Evidence-backed improvementsSkill and agent improvements from Insights that you have not acted on yet, with the number of supporting executions
Automatically handledActions an existing AgentKit automation recorded as done, such as a successful automatic update or published scheduled content
Schedules and resultsYour AgentKit automatic-update schedule and pending scheduled content, with the next run when it is known

Each row shows its project, or Machine-wide · no project attribution, its runtime, and its Recorded state. Outcome not verified means the automation reported its own result and nothing has checked it independently, so a recorded success is not proof that the problem was fixed. The next automatic update runs on the next eligible CLI command after it is due, not at a guaranteed time.

Use Project scope to narrow the page to one project; the top-bar runtime filter narrows it to selected runtimes. Plans have no runtime, so the runtime filter does not hide them, and Insights measurements are machine-wide, so the project scope does not filter them.

Data sources at the bottom lists each source with Available, Not supported, Could not load, or No matching records reported by this source, plus when it was checked. One source that fails does not hide the others. Connected runtime schedules always shows Not supported: AgentKit cannot read schedules a coding agent keeps itself, which does not mean none exist. Select Refresh sources to read every source again.

Overview only reads existing records. Opening it never starts an update or a run, and it adds no automation or permission; schedules appear only when you already turned them on, for example with ak update.

Understand the Dashboard figures

The Dashboard summarizes local usage: tokens over the selected window, sessions per day, the per-day activity heatmap, session-length buckets, and breakdowns by day, model, and project. Use the 7d / 30d / 90d control and the date range to change the window.

The Tokens by subagent panel attributes token spend to the subagent type that a Task or Agent delegation named. Turns outside a delegation are not counted there, and an empty panel means no delegation was recorded in the range. Like every Dashboard figure, it is derived on this machine from local session transcripts and the analytics index; AgentKit sends no telemetry for it.

The Session length card is served from the same analytics index as the other Dashboard cards. AgentKit buckets one indexed duration per session when it reads the selected window, so the card no longer runs a separate, project-capped transcript scan. A session without a positive measured duration is not placed in a duration bucket.

The Usage limits card lists rows per provider (claude, codex, cursor, grok) and window (5h, week, and monthly for Cursor), each row carrying a provenance badge and a quota bar, and refreshes every 60 seconds. Without advanced polling, rows carry raw_only provenance — local token counts only, no fabricated quota percentage. Claude Code and Codex rows add an approximate equivalent API cost; Cursor and Grok keep no local transcripts, so their rows show a dash for tokens and fill in only from advanced polling. The card stays empty until the local index has counted usage. Desktop sets the index up on its own unless you switched it off in the Database tab of Settings and system, which also covers advanced polling and the header badge and popover that read the same data.

These figures come from the local analytics index, not a billing source. They reconcile supported Claude Code and Codex session evidence while the window is open, so treat them as a local usage view rather than an invoice.

Filter by runtime

Dashboard with the runtime filter dropdown open

The runtime filter scopes Subagents, Skills, MCP, Hooks, Sessions, and Activity to one coding agent. Kits, commands, and the Dashboard figures are not attributed to a runtime, so they ignore this filter. A served from index note with a generation-mismatch badge means the index is behind the current state. Desktop brings it up to date on its own; to refresh it now, use Sync now in the Database tab of Settings.

Recognize the empty state

Dashboard empty state prompting you to install a kit

Before any Kit is installed or indexed, the Dashboard shows an empty state with Install a kit to get started and zeroed metrics. A Some figures could not be read banner means a panel could not draw from the index; reload to try again. Neither state is an error — it reflects local setup that has not produced data yet.

Next, learn how to work with the installed building blocks in Managing entities.