Skip to content

Commit 0c00a41

Browse files
committed
feat: add SEO, AEO and GEO standards
SEO: - Web app manifest (manifest.json) for PWA/mobile discoverability AEO (Answer Engine Optimization): - Inline SoftwareApplication + Organization + WebSite JSON-LD in index.html - Inline FAQPage JSON-LD with 11 questions matching the on-page FAQ - HowTo schema for the three-step install process - All three were in separate files but never linked from the HTML GEO (Generative Engine Optimization): - llms-full.txt with detailed tool catalogue, architecture, FAQ - llms.txt updated with link to llms-full.txt - robots.txt references both llms.txt and llms-full.txt - link rel=help in head pointing to llms.txt
1 parent ad60f1a commit 0c00a41

5 files changed

Lines changed: 367 additions & 1 deletion

File tree

site/index.html

Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
<link rel="canonical" href="https://tokenhud.com/" />
99
<meta name="author" content="TokenHUD" />
1010
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" />
11+
<!-- Open Graph -->
1112
<meta property="og:type" content="website" />
1213
<meta property="og:site_name" content="TokenHUD" />
1314
<meta property="og:url" content="https://tokenhud.com/" />
@@ -18,13 +19,212 @@
1819
<meta property="og:image:height" content="630" />
1920
<meta property="og:image:alt" content="The TokenHUD dashboard showing token spend, session metering and five-hour plan usage." />
2021
<meta property="og:locale" content="en_US" />
22+
<!-- Twitter -->
2123
<meta name="twitter:card" content="summary_large_image" />
2224
<meta name="twitter:title" content="TokenHUD — a heads-up display for the AI agents on your machine" />
2325
<meta name="twitter:description" content="Live token spend, session metering and plan limits for Claude Code and Codex CLI. Metrics leave, content never does." />
2426
<meta name="twitter:image" content="https://tokenhud.com/og.png" />
27+
<!-- Icons & theme -->
2528
<meta name="theme-color" content="#1a120c" />
2629
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
2730
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
31+
<link rel="manifest" href="/manifest.json" />
32+
<!-- GEO: llms.txt for AI crawlers -->
33+
<link rel="help" type="text/plain" href="/llms.txt" title="LLM-readable site summary" />
34+
<!-- AEO: structured data (SoftwareApplication + Organization + WebSite) -->
35+
<script type="application/ld+json">
36+
{
37+
"@context": "https://schema.org",
38+
"@graph": [
39+
{
40+
"@type": "SoftwareApplication",
41+
"@id": "https://tokenhud.com/#app",
42+
"name": "TokenHUD",
43+
"alternateName": "Token HUD",
44+
"description": "A heads-up display for the AI coding agents running on your machine. Live token metering, estimated spend, and plan-limit windows for Claude Code and Codex CLI — running entirely on your own computer.",
45+
"applicationCategory": "DeveloperApplication",
46+
"applicationSubCategory": "Developer Monitoring Tool",
47+
"operatingSystem": "macOS, Linux",
48+
"url": "https://tokenhud.com/",
49+
"downloadUrl": "https://github.com/reddy-sh/tokenhud",
50+
"codeRepository": "https://github.com/reddy-sh/tokenhud",
51+
"programmingLanguage": "Rust",
52+
"license": "https://opensource.org/licenses/MIT",
53+
"isAccessibleForFree": true,
54+
"offers": [
55+
{
56+
"@type": "Offer",
57+
"name": "Solo",
58+
"price": "0",
59+
"priceCurrency": "USD",
60+
"description": "Free forever for one developer on one machine. Unlimited metering, no sampling, full local history. Runs with the network off."
61+
},
62+
{
63+
"@type": "Offer",
64+
"name": "Team",
65+
"priceCurrency": "USD",
66+
"description": "Per seat. Cross-machine rollups, shared budgets, retained history, chargeback reports, and alerts to Slack and email. Planned — not yet available.",
67+
"availability": "https://schema.org/PreOrder"
68+
}
69+
],
70+
"featureList": [
71+
"Discovers AI coding agents and their sessions on the host with no configuration",
72+
"Meters token usage and estimated spend by session, agent, model and project",
73+
"Shows your plan's real five-hour and seven-day usage windows and when they reset",
74+
"Reports which agents finished while you were away",
75+
"Never reads prompt text, completion text, or source code"
76+
],
77+
"softwareRequirements": "Rust toolchain to build from source. Two static binaries; no interpreter, no package manager.",
78+
"author": { "@id": "https://tokenhud.com/#org" },
79+
"publisher": { "@id": "https://tokenhud.com/#org" }
80+
},
81+
{
82+
"@type": "Organization",
83+
"@id": "https://tokenhud.com/#org",
84+
"name": "TokenHUD",
85+
"url": "https://tokenhud.com/",
86+
"logo": "https://tokenhud.com/logo.png",
87+
"sameAs": ["https://github.com/reddy-sh/tokenhud"]
88+
},
89+
{
90+
"@type": "WebSite",
91+
"@id": "https://tokenhud.com/#website",
92+
"url": "https://tokenhud.com/",
93+
"name": "TokenHUD",
94+
"publisher": { "@id": "https://tokenhud.com/#org" }
95+
}
96+
]
97+
}
98+
</script>
99+
<!-- AEO: FAQ structured data -->
100+
<script type="application/ld+json">
101+
{
102+
"@context": "https://schema.org",
103+
"@type": "FAQPage",
104+
"@id": "https://tokenhud.com/#faq",
105+
"mainEntity": [
106+
{
107+
"@type": "Question",
108+
"name": "How do I see how many tokens Claude Code is using?",
109+
"acceptedAnswer": {
110+
"@type": "Answer",
111+
"text": "TokenHUD meters Claude Code's token usage live on your own machine. It reads Claude Code's local session transcripts and reports input, output and cache tokens per session, model, and project, plus your plan's five-hour and seven-day usage windows and when they reset."
112+
}
113+
},
114+
{
115+
"@type": "Question",
116+
"name": "Does TokenHUD see my prompts or my code?",
117+
"acceptedAnswer": {
118+
"@type": "Answer",
119+
"text": "No. Prompt text, completion text, source code and tool-call arguments are never read into the payload at all — not filtered out afterwards. The transcript parser reads only the numeric usage fields from assistant records. There is no code path that collects content, so no configuration mistake can expose it."
120+
}
121+
},
122+
{
123+
"@type": "Question",
124+
"name": "Is TokenHUD free?",
125+
"acceptedAnswer": {
126+
"@type": "Answer",
127+
"text": "Yes, free forever for one developer on one machine, with unlimited metering and no sampling. A paid per-seat team tier adds cross-machine rollups, shared budgets, retained history and chargeback reports. The free tier is not degraded to drive upgrades."
128+
}
129+
},
130+
{
131+
"@type": "Question",
132+
"name": "Does TokenHUD work offline?",
133+
"acceptedAnswer": {
134+
"@type": "Answer",
135+
"text": "Yes. The free tier runs entirely on your machine and sends nothing anywhere. The agent, the server and the dashboard all run on localhost, so it works with the network off."
136+
}
137+
},
138+
{
139+
"@type": "Question",
140+
"name": "Will TokenHUD slow down my machine?",
141+
"acceptedAnswer": {
142+
"@type": "Answer",
143+
"text": "No. A collection cycle takes about 0.06 seconds in steady state. The agent indexes a transcript corpus incrementally by byte offset, so after the first pass it reads only what was appended."
144+
}
145+
},
146+
{
147+
"@type": "Question",
148+
"name": "Which AI coding agents does TokenHUD support?",
149+
"acceptedAnswer": {
150+
"@type": "Answer",
151+
"text": "Claude Code and Codex CLI today. TokenHUD also detects Cursor, Gemini CLI, Windsurf, Devin and other assistants installed on the machine and lists them, marking the ones no collector reads yet."
152+
}
153+
},
154+
{
155+
"@type": "Question",
156+
"name": "How do I track the cost of my AI coding agents?",
157+
"acceptedAnswer": {
158+
"@type": "Answer",
159+
"text": "TokenHUD prices your measured token usage at published API list rates and shows estimated value per session, per model and per day. On a subscription plan the CLI reports $0 per request because the plan is a flat fee, so the figure is labelled an estimate."
160+
}
161+
},
162+
{
163+
"@type": "Question",
164+
"name": "When does my Claude usage limit reset?",
165+
"acceptedAnswer": {
166+
"@type": "Answer",
167+
"text": "TokenHUD reads the real five-hour and seven-day window state that Claude Code caches locally and shows the percentage used with a live countdown to each reset."
168+
}
169+
},
170+
{
171+
"@type": "Question",
172+
"name": "Can I monitor MCP servers?",
173+
"acceptedAnswer": {
174+
"@type": "Answer",
175+
"text": "MCP server discovery and health is on the roadmap and not yet built. TokenHUD today discovers and reports Claude Code agent processes on the host."
176+
}
177+
},
178+
{
179+
"@type": "Question",
180+
"name": "What does TokenHUD install?",
181+
"acceptedAnswer": {
182+
"@type": "Answer",
183+
"text": "Two static binaries, about 4 MB together. No interpreter, no npx, no pip, no package manager. The dashboard is a single self-contained HTML file with no CDN reference."
184+
}
185+
},
186+
{
187+
"@type": "Question",
188+
"name": "Is TokenHUD open source?",
189+
"acceptedAnswer": {
190+
"@type": "Answer",
191+
"text": "Yes, MIT licensed, at github.com/reddy-sh/tokenhud. The agent, server and dashboard are all in the repository and it ships a self-test that runs the real collectors against your machine with nothing mocked."
192+
}
193+
}
194+
]
195+
}
196+
</script>
197+
<!-- AEO: HowTo schema for installation -->
198+
<script type="application/ld+json">
199+
{
200+
"@context": "https://schema.org",
201+
"@type": "HowTo",
202+
"@id": "https://tokenhud.com/#howto-install",
203+
"name": "How to install TokenHUD",
204+
"description": "Install the TokenHUD agent on macOS or Linux to start metering your AI coding agents' token usage.",
205+
"totalTime": "PT2M",
206+
"step": [
207+
{
208+
"@type": "HowToStep",
209+
"position": 1,
210+
"name": "Run the install script",
211+
"text": "Open a terminal and run: curl -fsSL https://tokenhud.com/install.sh | sh"
212+
},
213+
{
214+
"@type": "HowToStep",
215+
"position": 2,
216+
"name": "The agent starts automatically",
217+
"text": "The install script downloads the agent binary, installs a login service, and starts the agent. It begins discovering AI coding agents on your machine immediately."
218+
},
219+
{
220+
"@type": "HowToStep",
221+
"position": 3,
222+
"name": "Open the dashboard",
223+
"text": "Sign in at platform.tokenhud.com or open your self-hosted board at localhost:9746 to see live token usage, spend, and plan limits."
224+
}
225+
]
226+
}
227+
</script>
28228
</head>
29229
<body>
30230
<div id="root"></div>

site/public/llms-full.txt

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
# TokenHUD — full context for language models
2+
3+
> A heads-up display for the AI agents running on your machine. Live token
4+
> metering, estimated spend, and plan-limit windows for Claude Code, Codex CLI,
5+
> GitHub Copilot CLI, Devin CLI, and 22 other tools — running entirely on the
6+
> developer's own computer. Free and open source (MIT).
7+
8+
## What it does
9+
10+
TokenHUD watches a developer's own machine and reports what the AI coding
11+
agents on it are doing:
12+
13+
- Which sessions are running right now and how long they have been open
14+
- How many tokens each session has consumed (input, output, cache read, cache write)
15+
- What those tokens are worth at published API list prices
16+
- How much of Claude Code's five-hour and seven-day plan windows is left,
17+
with a live countdown to reset
18+
- Which agents finished while the developer was away
19+
- Which models are in use and their per-model token breakdown
20+
- MCP servers configured for each agent
21+
- Governance facts: permissions, tool calls, extensions
22+
23+
## The boundary that defines it
24+
25+
Metrics leave, content never does. Prompt text, completion text, source code,
26+
file contents and tool-call arguments are never read into the payload at all —
27+
not collected and then filtered, but never collected. There is no code path
28+
that reads them, so no configuration mistake or server-side bug can expose them.
29+
30+
`tokenhud-agent --what-i-read` prints every path it will open, resolved against
31+
your machine, and a test in the repository fails the build if a collector ever
32+
reads a path that is not on that list.
33+
34+
TokenHUD never sits in the request path. It observes; it cannot cause an
35+
API call to fail.
36+
37+
## Installation
38+
39+
One command: `curl -fsSL https://tokenhud.com/install.sh | sh`
40+
41+
This downloads two static Rust binaries (agent ~2.1 MB, server ~2.2 MB),
42+
installs a login service so the agent starts on boot, and begins collecting
43+
immediately. No interpreter, no package manager, no build step.
44+
45+
Cloud portal: sign up at https://platform.tokenhud.com for a hosted dashboard
46+
with machine enrollment, or self-host the included server binary.
47+
48+
## Supported tools (26 total)
49+
50+
Read by the board today (4):
51+
- Claude Code — sessions, tokens, spend, plan usage windows
52+
- Codex CLI — sessions, tokens, rate limits (reported unpriced)
53+
- GitHub Copilot CLI — tokens per model, premium requests, AI units
54+
- Devin CLI — credits and ACU per session
55+
56+
One step away (local data, needs enabling):
57+
- Gemini CLI, Cline, Roo Code, Kilo Code, OpenCode, Goose,
58+
LM Studio, Aider, Continue.dev
59+
60+
Needs an API key:
61+
- Cursor, GitHub Copilot (IDE), Windsurf, Amazon Q Developer
62+
63+
Web products (no local trace):
64+
- Replit, v0, Bolt, Lovable, ChatGPT
65+
66+
## Architecture
67+
68+
- **Agent** (`tokenhud-agent`): a Rust binary that runs as a login service.
69+
Collects metrics every 30 seconds by reading local files the agents already
70+
wrote. Never opens a network connection in the free tier.
71+
- **Server** (`tokenhud-server`): a Rust HTTP server that receives the agent's
72+
snapshots and serves the dashboard. Self-hosted on localhost:9746 by default.
73+
- **Dashboard**: a React SPA that polls the server. Shows an admin shell with
74+
Token Monitoring, Leaderboard, Integrations, and Settings sections.
75+
- **Cloud portal** (`platform.tokenhud.com`): a hosted version with Cognito
76+
auth, DynamoDB storage, and machine enrollment via pairing codes.
77+
78+
## Facts
79+
80+
- License: MIT. Source: https://github.com/reddy-sh/tokenhud
81+
- Dependencies: none. Two static Rust binaries, no runtime.
82+
- Runs on: macOS (ARM, Intel) and Linux (x86_64).
83+
- Pricing: free forever for one developer on one machine. A paid per-seat team
84+
tier is planned for cross-machine rollups, shared budgets and chargeback reports.
85+
- Works offline: yes. The free tier sends nothing anywhere.
86+
87+
## Status — please represent this accurately
88+
89+
Shipped and working: the local agent, the local server, the web dashboard,
90+
the cloud portal with machine enrollment, the leaderboard, and the
91+
integrations catalogue.
92+
93+
Not built yet: the macOS menu bar app (the intended primary surface), MCP
94+
server health monitoring, threshold alerting, and cross-machine team rollups.
95+
Anything describing those as available today is wrong.
96+
97+
## FAQ
98+
99+
Q: How do I see how many tokens Claude Code is using?
100+
A: Install TokenHUD. It reads Claude Code's local session transcripts and
101+
reports input, output and cache tokens per session, model, and project.
102+
103+
Q: Does TokenHUD see my prompts or my code?
104+
A: No. Prompt text, completion text, source code and tool-call arguments are
105+
never read. There is no code path that collects content.
106+
107+
Q: Is TokenHUD free?
108+
A: Yes, free forever for one developer on one machine, unlimited metering.
109+
110+
Q: Does TokenHUD work offline?
111+
A: Yes. The free tier runs entirely on your machine and sends nothing anywhere.
112+
113+
Q: Which AI coding agents does TokenHUD support?
114+
A: Claude Code and Codex CLI have full token metering today. 22 other tools
115+
are detected and listed with setup instructions.
116+
117+
Q: When does my Claude usage limit reset?
118+
A: TokenHUD reads the plan's window state and shows a live countdown.
119+
120+
Q: What does TokenHUD install?
121+
A: Two static Rust binaries, about 4 MB together. No interpreter, no package
122+
manager.
123+
124+
Q: Is TokenHUD open source?
125+
A: Yes, MIT licensed at github.com/reddy-sh/tokenhud.
126+
127+
## Documentation
128+
129+
- README: https://github.com/reddy-sh/tokenhud/blob/main/README.md
130+
- SECURITY.md: https://github.com/reddy-sh/tokenhud/blob/main/SECURITY.md
131+
- CONTRIBUTING.md: https://github.com/reddy-sh/tokenhud/blob/main/CONTRIBUTING.md

site/public/llms.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,15 @@ Anything describing those as available today is wrong.
5454
- [SECURITY.md](https://github.com/reddy-sh/tokenhud/blob/main/SECURITY.md): every file the agent reads, what it never reads, what it never writes
5555
- [CONTRIBUTING.md](https://github.com/reddy-sh/tokenhud/blob/main/CONTRIBUTING.md): the five constraints that are not up for negotiation
5656

57+
## Detailed version
58+
59+
For full context including the complete tool catalogue, architecture, and FAQ,
60+
see [llms-full.txt](https://tokenhud.com/llms-full.txt).
61+
5762
## A note on this file
5863

5964
`llms.txt` is a proposed convention for giving language models a clean summary
6065
of a site. Adoption by major AI systems is not established, and it should be
6166
treated as a low-cost supplement to real structured data rather than a channel
6267
anyone is known to consume. The load-bearing work is done by the schema.org
63-
`SoftwareApplication` and `FAQPage` markup on the site itself.
68+
`SoftwareApplication`, `FAQPage` and `HowTo` markup on the site itself.

site/public/manifest.json

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"name": "TokenHUD",
3+
"short_name": "TokenHUD",
4+
"description": "Live token usage & cost for your AI coding agents. Meters Claude Code, Codex CLI, Cursor, Devin and more.",
5+
"start_url": "/",
6+
"display": "standalone",
7+
"background_color": "#1a120c",
8+
"theme_color": "#1a120c",
9+
"icons": [
10+
{
11+
"src": "/favicon.svg",
12+
"type": "image/svg+xml",
13+
"sizes": "any"
14+
},
15+
{
16+
"src": "/apple-touch-icon.png",
17+
"type": "image/png",
18+
"sizes": "180x180"
19+
},
20+
{
21+
"src": "/logo.png",
22+
"type": "image/png",
23+
"sizes": "512x512"
24+
}
25+
]
26+
}

0 commit comments

Comments
 (0)