Skip to content

[Feature]: Settings profile page — lifetime token stats, streaks, and activity heatmap #102841

Description

@steipete

Summary

Add a Profile section to the Control UI settings: an agent-centric stats page (in the spirit of coding-agent profile pages) showing lifetime token usage, activity streaks, a year-long token heatmap, and most-used tools/channels.

Problem to solve

OpenClaw tracks rich per-session usage (tokens, costs, tools, channels, models) but only exposes it through the analysis-oriented Usage dashboard. There is no glanceable, fun identity page that summarizes an install's lifetime activity — the kind of "wrapped"-style overview users share and check daily. The data already exists via usage.cost and sessions.usage; it just has no surface.

Proposed solution

New /settings/profile page in the settings takeover:

  • Hero with the default agent's identity (avatar/emoji, name, agent id), "in the reef since" chip, and top channels.
  • Stat strip: lifetime tokens (+approx cost), peak day, longest session, current/longest streak.
  • GitHub-style 52-week token activity heatmap (local-day buckets, quartile intensity).
  • Activity insights (most used model, messages, tool calls, distinct tools, agents, sessions) and most-used tools with run counts.
  • Data from existing gateway RPCs (usage.cost, sessions.usage with range: "all"); additive aggregate fields (sessionCount, longestSessionDurationMs) so headline stats do not depend on the capped row page.

Alternatives considered

  • Extending the Usage page: rejected — Usage is a dense analysis tool with date filtering; a profile is a distinct glanceable identity surface.
  • Client-side aggregation over the capped sessions.usage rows only: rejected — the 1,000-row cap makes lifetime headline stats wrong on active installs; additive server aggregates are needed.

Impact

All Control UI users get a zero-config overview of their agent's lifetime activity. No config surface added; purely additive gateway response fields.

Evidence/examples

Screenshots (mock-gateway harness):

dark

Additional information

Known limitation carried over from the existing usage surface: day buckets use a fixed current-UTC offset, so DST-opposite-season history near midnight can shift a day; DST-aware bucketing is a usage-wide follow-up.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low-priority cleanup, docs, polish, ergonomics, or speculative work.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.enhancementNew feature or requestissue-rating: 🌊 off-meta tidepoolIssue quality rating does not apply to this item.maintainerMaintainer-authored PRmaturity:stableIssue affects a taxonomy feature currently scored M4/M5.

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions