arthai-marketplace

FAQ

General

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.

Installation

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? Easiest: turn on auto-updates once — run /plugin, open the Marketplaces tab, select arthai, choose Enable auto-update. Manual update:

/plugin marketplace update arthai      # refresh the catalog
/plugin uninstall <your-bundle>@arthai # then reinstall, e.g. prime
/plugin install <your-bundle>@arthai
/reload-plugins

What changed: see the CHANGELOG.

If the update doesn’t seem to take, fall back to the full reset — remove the marketplace, clear the cache, re-add, and reinstall:

/plugin marketplace remove arthai
rm -rf ~/.claude/plugins/cache/*arthai*
/plugin marketplace add ArthTech-AI/arthai-marketplace
/plugin install <your-bundle>@arthai
/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 unless you intentionally want to wipe all trace data (e.g. the uninstall path) — 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 7h: Updating Arth Intelligence for the full picture (skill updates, compose-file updates, opt-out of auto-updates).

Usage

Q: Which bundle should I start with? Start with prime — the everything bundle (it’s what the Quick Start installs). If you want a smaller footprint, forge 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. Project-local files in .claude/agents/ and .claude/skills/ take precedence over plugin-provided ones of the same name. See Configuration for details.

Troubleshooting

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.

Observability

Full guide — what Arth Intelligence is, setup, verification, dashboard tour, privacy: arth-intelligence.md

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.

Q: My dashboard shows everything as “Unattributed” (no Toolkit / Claude / custom-agent split) Your OTEL emitter is pointing at the wrong engine or protocol, so the owner labels never reach the dashboard — and on older installs it failed silently. This is usually a stale .claude/.arth-otel.env (the file the emission hook reads) left over from an earlier setup, holding an old port or http/protobuf instead of http/json.

Fix — three steps, ~1 minute:

  1. Update the toolkit to the latest plugin version.
  2. Update Arth Intelligence — it auto-updates via watchtower, or run docker compose pull && docker compose up -d (the turn_cost_facts table is created automatically on startup).
  3. Run /otel-setup once, then restart your Claude Code session. /otel-setup now detects and repairs a stale .arth-otel.env, reconciles it with settings.local.json, validates the endpoint is reachable on http/json, and runs a smoke test. You’ll also get a one-line warning at session start if the endpoint is unreachable, so this can’t silently bite you again.

Attribution is forward-only: only sessions run after you correct the config are attributed by owner. Sessions captured earlier stay “Unattributed” — that’s by design, not a bug.

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 (current /otel-setup templates set this; verify with docker inspect --format '' arthai-intelligence).