Q: Do I need a license key? Yes. Without a valid key, the plugin installs but skills and hooks are non-functional. Email productive@getarth.ai to get a key.
Q: How does license validation work? On every prompt you send in Claude Code, a hook validates your key. First time it calls the license server (~200ms). After that it uses a 24-hour cache (~5ms).
Q: Can I use the plugins offline? Yes, after the first validation. The 24-hour cache means you can work offline as long as you validated within the last day.
Q: What happens if my key is revoked? Skills stop working within 24 hours (when the cache expires). Contact productive@getarth.ai for a new key.
Q: Skills aren’t showing after install
Run /reload-plugins and restart Claude Code.
Q: “LICENSE REQUIRED” on every prompt
Run npx arthai-activate ARTH-XXXX-XXXX-XXXX-XXXX in your terminal (not Claude Code).
Q: How do I update the plugins (skills, agents, hooks) to the latest version? Remove the marketplace, clear cache, re-add, and reinstall:
/plugin marketplace remove arthai-marketplace
rm -rf ~/.claude/plugins/cache/*arthai*
/plugin marketplace add ArthTech-AI/arthai-marketplace
/plugin install forge@arthai-marketplace
/reload-plugins
Q: How do I update Arth Intelligence (the local Docker container)? Two ways, both safe — your trace data is preserved either way.
Automatic. If you installed via /otel-setup, a watchtower sidecar checks once a day and pulls the latest arthai/intelligence image. You don’t need to do anything.
Manual (force update now). Run:
curl -fsSL https://arthtech-ai.github.io/arthai-marketplace/scripts/update.sh | sh
Or paste these two commands if you prefer not to pipe to shell:
docker compose -f ~/.arthai/docker-compose.yml pull
docker compose -f ~/.arthai/docker-compose.yml up -d
Never run docker compose down -v — the -v flag drops the data volume and erases every session, score, and pattern. Plain down (without -v) is safe; it just stops the containers.
See Step 8f: Updating Arth Intelligence for the full picture (skill updates, compose-file updates, opt-out of auto-updates).
Q: Which bundle should I start with? Start with forge — it covers the core development workflow (planning, implementing, QA, PRs). Add more bundles as needed.
Q: Can I install multiple bundles? Yes. Bundles compose without conflicts.
Q: What does /calibrate do?
It scans your codebase and configures the toolkit to match your project’s
tech stack, patterns, and conventions. Safe to run multiple times.
Q: Can I override plugin behavior? Yes. Any plugin-provided file can be overridden by replacing the symlink with a regular file. See Configuration for details.
Q: CLAUDE.md not created after install Restart Claude Code — the setup hook fires on session start, not on install.
Q: Old version seems stuck
Clear the plugin cache: rm -rf ~/.claude/plugins/cache/*arthai* then reinstall.
Q: A skill is erroring out
Check that your license is valid (cat ~/.arthai/license), then try
/reload-plugins and restart Claude Code.
Q: Why are the cost / token columns empty in the dashboard? Cost and token data only flow when Claude Code’s native OTEL is enabled. The toolkit hook emits structural spans (sessions, prompts, tool calls, agent spawns) but does not emit cost metrics — that’s the native emitter’s job. Verify the env var is set:
grep CLAUDE_CODE_ENABLE_TELEMETRY .claude/settings.local.json
If missing, run /otel-setup and pick “Local” — it writes CLAUDE_CODE_ENABLE_TELEMETRY=1 along with the OTLP endpoint and protocol (http/json) into .claude/settings.local.json. Restart Claude Code, run any prompt, and the cost columns populate from that point forward.
If the var is set but cost is still empty, also check OTEL_EXPORTER_OTLP_PROTOCOL=http/json is present — without it, Claude Code defaults to gRPC/protobuf and the engine silently drops the metrics (#304).
Q: Where does the dashboard live?
After /otel-setup finishes, it’s at http://localhost:3100. Engine health is at http://localhost:4319/api/health.
Q: What’s the difference between the toolkit’s OTEL hook and Claude Code’s native OTEL? Both stream into the same local engine and complement each other:
| Stream | Source | Carries |
|---|---|---|
| Trace spans | toolkit otel-telemetry hook |
session, prompt, tool calls, agent spawns, skill invocations, stop events |
| Cost + token metrics | Claude Code native OTEL (env-gated) | per-call cost USD, input/output/cache tokens, model name |
You want both on for a complete dashboard. /otel-setup enables both in one step.
Q: Can I disable observability?
Yes. export OTEL_DISABLED=true makes the toolkit hook a no-op. Native OTEL is gated separately by CLAUDE_CODE_ENABLE_TELEMETRY — unset it (or set to 0) to stop native cost/token streams.
Q: Why is my dashboard empty after a reboot? Most likely your engine + DB containers aren’t running. Check:
docker ps --filter 'name=arthai'
You should see three containers — arthai-intelligence, arthai-db, arthai-watchtower. If any are missing, your compose file probably has an old restart policy (only watchtower had restart: unless-stopped before the reboot-durability fix). Two ways to fix:
# Fastest — just update the running containers in place
docker update --restart unless-stopped arthai-db arthai-intelligence
# Or re-run /otel-setup → Local — overwrites ~/.arthai/docker-compose.yml with the
# new template that sets restart: unless-stopped on every service
Either way, no data loss — the arthai_data Docker volume is preserved across all container changes.
If Docker Desktop itself didn’t start, that’s a per-user OS toggle: open Docker Desktop → Settings → General → “Start Docker Desktop when you log in.” We can’t set this for you.
Q: What survives a reboot vs what doesn’t?
See getting-started.md → Step 7g: What survives a reboot for the full table. Short version: env vars + compose file + your trace data all persist; what was running depends on whether your containers have restart: unless-stopped (they should, after this fix).