agentistics

Query and manage local AI coding-assistant usage data, costs and a task board from agentistics

Official · Agentistics JavaScript Local · stdio Data and analyticsDeveloper toolsProductivity

62 popularity score ★ 48 ↓ 11k/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude CodeTerminal
claude mcp add agentistics -- npx -y @agentistics/mcp
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "agentistics": {
      "command": "npx",
      "args": [
        "-y",
        "@agentistics/mcp"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "agentistics": {
      "command": "npx",
      "args": [
        "-y",
        "@agentistics/mcp"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "agentistics": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@agentistics/mcp"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.agentistics]
command = "npx"
args = ["-y", "@agentistics/mcp"]
Gemini CLITerminal
gemini mcp add --scope user agentistics npx -- -y @agentistics/mcp

Settings 1

AGENTISTICS_API Optional: Base URL of the running agentistics API. Default http://localhost:47291.

What it does

agentistics is a local app that reads the session logs AI coding assistants leave on disk (Claude Code, Codex CLI, Gemini CLI, GitHub Copilot CLI, Antigravity and Kimi Code) and works out tokens, estimated cost, sessions and activity from them. This MCP server is a thin stdio front end to that app's HTTP API. It never opens the log folders itself. It asks a running agentistics server, which is http://localhost:47291 unless AGENTISTICS_API points elsewhere.

On the reporting side an assistant can get all-time totals, compare harnesses, and break spend down by project, repository, model or session. It can also read saved tags and check subscription windows, where it gets a hint about which harness or model to use next. The rest of the tools change things. They edit custom dashboard layouts, return a link to a PDF report, run a beta task board where agents create, claim, comment on and delete tasks, and file sessions into groups. A leader session can set roles, switch away mode, message other managed sessions or move a session to another account when one hits its usage limit.

Count the tools in the source rather than trusting the docs. The current release's agentistics-mcp.ts registers 48. docs/mcp.md says 38 and still names two team tools the code no longer has, and the npm package README says 13. Two of the 48, agentistics_flow_run and agentistics_flow_status, only show up when the server reports its experimental flows switched on.

You can launch it two ways. The npm package @agentistics/mcp runs under npx. The agentop binary also carries a copy as `agentop mcp`, and `agentop server` registers that copy for Claude Code, Codex, Gemini and Copilot every time it starts.

What it needs

RuntimeNode.js
Runs onmacOS, Windows, Linux
Also
  • A running agentistics server (agentop server, or the Windows desktop app)
  • At least one supported coding assistant whose logs it can read

Start agentistics first. The one-line installer (`curl -fsSL https://agentop.openvibes.tech/cli | sh`) fetches the agentop binary for Linux x86_64 or macOS on x86_64 or arm64, while `npm i -g @agentistics/agentop` brings the Linux x86_64 binary only. Windows uses the .msi or .exe from the releases page. At the end the installer offers to start the server and to start it at login. Without a terminal it asks nothing, and AGENTOP_INSTALL_START=yes|no and AGENTOP_INSTALL_AUTOSTART=yes|no answer for it. Node.js runs the npx launch.

Limits

  • Not covered Sends every request with no credential, so a team central that requires sign-in answers with an auth refusal
  • Not covered Task-board and session-group tools need a machine server. A central refuses them (docs/mcp.md)
  • Early release The task board is marked beta and its request and reply shapes may change between releases
  • Early release agentistics_wait and the two flow tools are marked experimental and tied to the server's AGENTISTICS_FLOWS switch
  • Limit agentistics_session_message is refused unless the caller is a verified agentop session, and limited to once per 2 seconds per target
  • Limit currentStreak counts Claude Code only, and harnesses that log no token usage show 0 tokens and 0 cost. Costs are estimates
  • Platform The agentop server has builds for Linux x86_64, macOS (x86_64, arm64) and Windows. Linux on ARM is not offered

Each time `agentop server` starts it removes other registrations of this MCP from ~/.claude.json, such as a hand-added @agentistics/mcp entry under another name or a project-scope entry, and writes its own `agentop mcp` entry instead. Sessions already open keep the copy they started with until restarted.

Who it suits

Developers who already run agentistics and want an assistant to answer questions about their own token spend, sessions and projects across several coding assistants, or to coordinate a group of agent sessions through its task board. With no agentistics server running it does nothing. Linux on ARM has no server build. If you only want read access, note that delete, account-switch and messaging tools are all exposed, so lean on your client's approval prompts.

Tools 48

20 only read, 23 change things, 5 can delete or overwrite. A ? marks an optional parameter.

agentistics_summary
All-time tokens, cost, sessions and streak, for all harnesses or oneharness?: enum
agentistics_harnesses
Side-by-side comparison of each tracked coding assistant
agentistics_plan_limits
Subscription windows, pacing and which harness or model to use nextkind?: enumauthorHarness?: string
agentistics_projects
Sessions, tokens and cost per projectharness?: enum
agentistics_sessions
Recent sessions with harness, project, duration, model and tokenslimit?: numberharness?: enum
agentistics_costs
Token counts and estimated cost per modelharness?: enum
agentistics_repos
Usage and cost grouped by git remoteharness?: enum
agentistics_tags
Saved tags with their sessions, cost and tokens
agentistics_tag_detail
Totals and breakdowns for one tagtag: string
agentistics_component_catalog
Dashboard components a custom layout can holdcategory?: string
agentistics_get_layouts
Current custom layouts and their component instance ids
agentistics_build_layout changes
Create a layout from a list of components in one callname: stringcomponentIds: arrayactivate?: boolean
agentistics_add_component changes
Place one component on a layoutlayoutName?: stringcomponentId: stringx?: numbery?: numberw?: numberh?: number
agentistics_remove_component changes
Take a component off a layout by instance idlayoutName?: stringitemId: string
agentistics_create_layout changes
Add an empty named layoutname: string
agentistics_set_active_layout changes
Pick the layout the custom page showsname: string
agentistics_delete_layout deletes
Delete a layout for good (the last one is kept)name: string
agentistics_export_pdf
Link that opens the PDF export for a chosen periodrange?: enum
agentistics_tasks
Board tasks with cost, rounds and sessions (beta)
agentistics_task
One task with its attempts and sessions (beta)ref: string
agentistics_task_create changes
New task with a title and optional detail (beta)title: stringdetail?: string
agentistics_task_edit changes
Change title, detail, priority, dates or labels (beta)ref: stringtitle?: stringdetail?: stringpriority?: enumdueDate?: stringstartDate?: stringlabels?: arrayactor?: string
agentistics_task_status changes
Move a task to another status (beta)ref: stringstatus: stringactor?: stringreason?: stringblockedBy?: array
agentistics_task_statuses
Statuses the board has (beta)
agentistics_task_status_edit deletes
Add, rename, recolour or remove a status (beta)id?: stringlabel?: stringcolor?: stringremove?: boolean
agentistics_task_types
Task type list with usage counts (beta)
agentistics_task_type_edit deletes
Add, rename, recolour or remove a task type (beta)id?: stringlabel?: stringcolor?: stringremove?: boolean
agentistics_task_comment changes
Comment on a task, subtask or subtask group (beta)ref: stringbody?: stringauthor?: stringsubtaskId?: stringthreadId?: stringthreadTitle?: stringthreadKind?: enumkind?: enumattachments?: array
agentistics_task_subtask changes
Add a subtask or update one (beta)ref: stringtitle?: stringid?: stringdone?: booleanstatus?: enumdueDate?: stringstartDate?: stringblockedBy?: arrayisGroup?: booleanparentGroupId?: string
agentistics_task_link changes
Attach or remove a link such as a pull request (beta)ref: stringurl?: stringlabel?: stringkind?: stringremove?: string
agentistics_task_blocked_by changes
Set the tasks that must finish first (beta)ref: stringblockedBy: array
agentistics_task_next
What can be picked up now and what is held back (beta)actor?: stringlimit?: number
agentistics_task_claim changes
Take or release a lease on a task (beta)ref: stringby: stringrelease?: booleanleaseMs?: numbersessionId?: stringnote?: stringtakeover?: booleanforce?: boolean
agentistics_task_activity
Recent board activity, newest first (beta)ref?: stringlimit?: number
agentistics_task_session changes
File a session under a task, or detach it (beta)ref?: stringsessionId?: stringconversationId?: stringharness?: stringnote?: stringsubtaskId?: stringdetach?: string
agentistics_task_delete deletes
Delete a task with its comments, subtasks, files and links (beta)ref: string
agentistics_checkin_report changes
Record a leader's check-in round for the ownerstate: enumsummary: stringheadline?: stringdelivered?: arrayinProgress?: arraynext?: arrayhealth?: arrayactions?: arrayneeds?: array
agentistics_session_groups
Session groups and the sessions in each
agentistics_session_group_create changes
Make a session group, optionally filing sessions into itname: stringsessions?: array
agentistics_session_group_edit deletes
Add or remove a session, rename or delete a groupaction: enumgroup?: stringsession?: stringname?: string
agentistics_session_role changes
Read or set a session's leader, worker or auto roleref?: stringrole?: enumretirePredecessor?: string
agentistics_session_notify changes
Read or switch a session's notificationsref: stringnotify?: enum
agentistics_session_message changes
Type a handback, block or question into another sessionto: stringkind: enumbody: string
agentistics_session_switch_account changes
List accounts a session can move to, or move it to oneref: stringaccountId?: stringharness?: stringresendPending?: boolean
agentistics_session_away changes
Read or switch away mode, or send the owner a noticeon?: booleanuntil?: stringauthorised?: arraynote?: stringmaxWorkers?: numbertopCaps?: objecttarget?: stringnotice?: string
agentistics_wait changes
Register, list, acknowledge or cancel a server-held wait (experimental)action: enumcondition?: objectdeadlineAt?: stringlabel?: stringrequestId?: stringreopen?: booleanwaitId?: stringgeneration?: numberfrom?: stringall?: boolean
agentistics_flow_run changes
Start a built-in flow (experimental, hidden unless enabled)name: stringinputs?: object
agentistics_flow_status
Status of a flow run (experimental, hidden unless enabled)runId: string

Similar servers