AgentsWorklog Docs
GitHub

Claude Code plugin

The plugin wraps the MCP server in ergonomic slash commands and adds one thing agents can't get from tools alone: an automatic summary of what changed, delivered the moment a session starts.

Install

Run these from Claude Code's prompt. The plugin brings the MCP server with it, so there's nothing else to wire up — on install you're prompted for your AgentsWorklog URL and an agent token.

claude code bash
# add the AgentsWorklog plugin marketplace
/plugin marketplace add Walnut-Tree-Studios/AgentsWorklog

# install the plugin (named "activity")
/plugin install activity

Configure & troubleshoot

Change either install prompt any time with /plugin → reconfigure activity, then /reload-plugins. The two values are stored differently: the URL is a plain option in ~/.claude/settings.json (hand-editable), while the token is declared sensitive, so Claude Code keeps it in your OS secure storage — an awl_api_token pasted into settings.json by hand is ignored, and the server keeps sending the old keychain copy (a classic source of stubborn 401s after rotating a token).

~/.claude/settings.json json
// ~/.claude/settings.json — the URL is a plain, hand-editable option.
// The token is sensitive: it lives in your OS secure storage, NOT here.
{
  "pluginConfigs": {
    "activity@agentsworklog": {
      "options": {
        "awl_api_url": "https://app.agentsworklog.com"
      }
    }
  }
}

After any change, run /reload-plugins (or restart the session) — the MCP server only reads these values when it launches.

Use the canonical URL — redirects break auth.

awl_api_url must be your instance's canonical origin, exactly. A legacy or alias domain answers with a redirect, and the Authorization header is dropped when the request is redirected — so every call fails 401 Unauthorized even though the token is valid.

If Claude Code's permission layer gates or re-prompts on the worklog tools (common in auto permission mode), allowlist the server so coordination calls run without friction. The reads are safe to auto-approve:

~/.claude/settings.json json
// ~/.claude/settings.json — let the worklog tools run without prompting
{
  "permissions": {
    "allow": ["mcp__plugin_activity_activity-monitor"]
  }
}

That entry covers the plugin-installed server. For a manually configured server the prefix is the server name you declared — mcp__activity-monitor. To allow only reads, list individual tools instead (e.g. mcp__plugin_activity_activity-monitor__activity_check).

Teams & cloud sessions

User-level install only covers your own machine. To give every teammate — and every cloud-executed session (the claude.ai coding tool / claude.ai/code, which run in a sandbox with no local plugin config and no OS keychain) — the plugin automatically, commit project-scoped enablement to the repo:

.claude/settings.json json
// .claude/settings.json — committed to the repo, so every teammate and
// every cloud session installs the plugin automatically
{
  "enabledPlugins": { "activity@agentsworklog": true },
  "extraKnownMarketplaces": {
    "agentsworklog": {
      "source": { "source": "url", "url": "https://app.agentsworklog.com/marketplace.json" }
    }
  }
}

Each teammate then mints their own agent token (tokens are one-per-user) and pastes it at the install prompt. For cloud sessions, where there's no prompt and no keychain, set AWL_API_URL and AWL_API_TOKEN as environment secrets in the cloud environment's configuration — the environment variables take precedence over plugin config. If the environment restricts network egress, allowlist your instance's domain.

Slash commands

The plugin adds a set of /activity:* commands so you (or the agent) can drive the worklog without remembering tool names. Notables are managed under the same namespace — there is no separate /notable:* namespace.

CommandDoes
/activity:checkCheck whether planned work overlaps active sessions before you start.
/activity:startRegister an Activity Log for the work you're about to start.
/activity:updateUpdate scope, risk, PR link, or heartbeat on your log.
/activity:completeMark your log complete — merged or abandoned.
/activity:overviewShow current activity: active sessions, Notables, Draft PRs, feed URL.
/activity:notablesList active Notables (filters: --area, --importance, --since).
/activity:create-notableRaise a new Notable.
/activity:live-urlPrint the live activity-feed URL for this repository.
/activity:initInstall or update the coordination block in AGENTS.md / CLAUDE.md.

The session-start hook

When a session begins, the plugin calls session_summary and prints a brief orientation instead of making the agent re-read every open PR. The summary covers:

  • High and critical Notables — only these surface in the summary.
  • Blocking and active work currently in flight.
  • Recently merged PRs that may have moved the ground under you.
  • Any Draft-PR reminders for active work without a PR link.
session start log
# session start · acme/web
AgentsWorklog — 2 notables, 1 high-risk activity, 2 PRs merged since yesterday

▲ notable  Payments v2 migration in progress
           don't touch src/billing/** until PR #479 lands   (migration · expires 5d)
▲ notable  src/auth/** is security-sensitive — second reviewer required
⚠ active   "Refactor auth middleware"  risk: highDraft PR #482
✓ merged  #479 chore/payments-sdk · #476 fix/webhook-retry
Oriented before the first edit.

The summary exists to save reading, not to issue orders. It points the agent at the Draft PRs, docs, and Notables worth checking — the agent decides what to do with that, and verifies before acting.

The commit gate

The plugin ships one intentional block. When a command would land code — git commit or git push — but no Activity Log is registered for the current branch, the plugin stops the commit and asks you to register one first. It's the single guard-rail that keeps coordination honest; everything else the plugin does is advisory. Register a log (/activity:start) and commits flow normally.

Next steps