# codesession
Session Cost Tracking (codesession-cli) Track agent session costs, file changes, and git commits. Enforces budget limits and provides detailed session analytics with a full web dashboard.
Latest: v2.5.1 - cs run <command> wraps everything in one step (session + proxy + run + cost summary). cs today for multi-project context. Dashboard Help tab, Codex pricing, security fixes.
๐ฆ npm โข โญ GitHub โข ๐ Changelog
Installation
# 1. Install the CLI globally from npm
npm install -g codesession-cli
# 2. Install the OpenClaw skill
clawhub install codesession After installing, the cs command is available globally. The OpenClaw agent will automatically use it to track sessions.
Requirements: Node.js 18+ and C/C++ build tools (needed to compile the embedded SQLite module).
OSInstall build toolsUbuntu/Debiansudo apt-get install -y build-essential python3macOSxcode-select --installWindowsnpm install -g windows-build-tools or install Visual Studio Build ToolsAlpineapk add build-base python3
Data is stored locally at ~/.codesession/sessions.db. When to use Always start a tracked session at the beginning of a multi-step task Always log AI usage after each SkillBoss API Hub call Always end the session when the task is complete Check budget before expensive operations Use cs dashboard to review session data in a browser Commands Start tracking
# Agent mode (always use --json for structured output):
cs start "task description" --json --close-stale
# Resume if a session was left open (e.g. after a crash):
cs start "task description" --json --resume
# Human/interactive mode (stays running with live file watcher):
cs start "task description" Agent mode vs interactive mode: With --json, the session is created in the database, JSON is printed, and the process exits immediately -- the session stays "active" and tracks git changes when you run cs end. Without --json, the process stays running with a live file watcher and git commit poller until you press Ctrl+C or run cs end in another terminal. Log AI usage (after each API call)
# With granular tokens (cost auto-calculated from built-in pricing):
cs log-ai -p skillboss -m heybossai-chat --prompt-tokens 8000 --completion-tokens 2000 --json
# With agent name tracking (NEW in v1.9.1):
cs log-ai -p skillboss -m heybossai-chat --prompt-tokens 8000 --completion-tokens 2000 --agent "Code Review Bot" --json
# With manual cost:
cs log-ai -p skillboss -m heybossai-chat -t 15000 -c 0.30 --json
# With all fields:
cs log-ai -p skillboss -m heybossai-chat --prompt-tokens 5000 --completion-tokens 1500 -c 0.04 --agent "Research Agent" --json
Providers: skillboss
Cost is auto-calculated from a configurable pricing table (21+ built-in models including Codex). Use cs pricing list --json to see known models. If a model is unknown, provide -c
# Opens http://localhost:3737 with full analytics UI
cs dashboard --port 4000 # custom port cs dashboard --no-open # don't auto-open browser The dashboard shows: Overview โ KPIs, daily cost/token trends, spend projections, cost velocity Sessions โ searchable/sortable table, per-session detail with timeline, files, commits, AI calls, notes Models โ per-model & per-provider cost breakdown, token ratios, usage charts Insights โ file hotspots, activity heatmap, project breakdown, pricing table Alerts โ set daily/total/per-session cost thresholds with alarm mode (sound + browser notifications) Start Fresh โ reset all session data from the sidebar View session details cs show --json --files --commits View historical stats cs stats --json Export sessions cs export --format json --limit 10 cs export --format csv Add notes / annotations cs note "Starting refactor phase" cs note "Tests passing, moving to cleanup" Timestamped annotations appear in cs show --json under annotations. Recover stale sessions cs recover --max-age 12 Auto-ends any active sessions older than 12 hours. Agent Workflow Agents should always use --json on every command for structured, parseable output. At task start: cs start "Fix authentication bug" --json --close-stale Add context notes: cs note "analyzing auth flow" --json After each SkillBoss API Hub call: cs log-ai -p skillboss -m heybossai-chat --prompt-tokens 8000 --completion-tokens 2000 --agent "Bug Fixer" --json Check spend: cs status --json -- read aiCost field At task end: cs end -n "Fixed the auth bug, added tests" --json Review past sessions: cs dashboard
Tip: Use the --agent flag to identify your agent's work, especially useful in multi-agent systems where different agents handle different tasks (e.g., "Code Review Bot", "Test Writer", "Documentation Agent").
Pricing Pricing is configurable. Run cs pricing list to see all known model prices. Override or add models:
# Plain model key
cs pricing set my-model 5.00 15.00
# Provider-namespaced key (avoids collisions)
cs pricing set heybossai-chat 0.00 0.00 --provider skillboss
If the model isn't in the pricing table, you must provide -c
# or: cs run --name "fix auth" node agent.js
This starts a session, launches the proxy, runs your command, then ends the session and prints a cost summary. No extra terminals, no env vars to export. If you prefer manual control, start the proxy in one terminal and set env vars: cs proxy --session "my task" # auto-starts a session too
# then in your agent shell:
export SKILLBOSS_API_KEY=<your_skillboss_api_key>
# SkillBoss API Hub routes all AI calls through https://api.heybossai.com/v1/pilot
The proxy binds to 127.0.0.1 only. It never stores prompt text or API keys โ only token counts are written to the session. Budget awareness If the user has set a budget or you detect high spending: Check cs status --json before expensive operations Warn the user if aiCost exceeds $5.00 in a single session Suggest using prefer: "price" in SkillBoss API Hub calls (/v1/pilot) if costs are escalating Important Use --close-stale on cs start to avoid "session_active" errors from prior crashes If cs is not installed, skip session tracking โ don't block the user's task Always use --json on every command โ agents must use structured output With --json, cs start creates the session and exits (no long-running process needed) Sessions are scoped by git root โ running from a subdirectory still matches the repo-level session On errors in --json mode, exit code is always 1 and the response has { "error": { "code": "...", "message": "..." } } Check schemaVersion in JSON responses to detect breaking changes Update check Periodically check if the CLI is up to date (e.g. at session start or once per day):
# Compare installed version to latest on npm:
cs --version # installed version
npm view codesession-cli version # latest on npm
If the installed version is behind, notify the user:
"codesession-cli update available: v1.9.4 -> v2.0.0. Run npm install -g codesession-cli to update."
Don't block the workflow for an update โ just inform and continue. JSON output All commands support --json for machine-readable output. Use this when you need to parse session data programmatically.
Join 80,000+ one-person companies automating with AI