LLM Token Counter
Paste text to see estimated token counts for Claude, GPT, and Gemini side by side. GPT tokens are counted exactly with the o200k_base tokenizer; Claude and Gemini do not publish their tokenizers, so those counts are approximations.
Everything runs locally in your browser — your text is never sent to any server.
Loading tokenizer dictionary…
Claude
approx.0
tokens
Estimate (Anthropic does not publish a tokenizer for Claude 3+)
GPT
exact0
tokens
o200k_base — GPT-5.5 / GPT-5 / GPT-4o / GPT-4.1
Gemini
approx.0
tokens
Estimate (Google does not publish a client-side tokenizer)
Per-model breakdown
| Model | Tokens | Context limit | Usage |
|---|---|---|---|
| Claude Opus 4.8 approx. | 0 | 200K | 0% |
| Claude Sonnet 4.5 approx. | 0 | 200K | 0% |
| Claude Haiku 4.5 approx. | 0 | 200K | 0% |
| GPT-5.5 | 0 | 1.05M | 0% |
| GPT-5 | 0 | 400K | 0% |
| GPT-4.1 | 0 | 1M | 0% |
| GPT-4o | 0 | 128K | 0% |
| GPT-4 Turbo | 0 | 128K | 0% |
| GPT-3.5 Turbo | 0 | 16K | 0% |
| Gemini 3 Pro approx. | 0 | 1M | 0% |
| Gemini 2.5 Flash approx. | 0 | 1M | 0% |
Claude and Gemini counts are heuristic estimates derived from the exact GPT count and the character mix, and may differ from the real API count by roughly ±10–20%. Use them for rough sizing, not billing.
The tokenizer dictionary could not be loaded, so the GPT count is also an approximation.
Articles for this tool
LLM Token Counter: Check Claude, GPT & Gemini Token Counts in Your Browser
Paste text and compare token counts for Claude, GPT and Gemini side by side. Covers token basics, why tokenizers differ per model, why non-English text costs more tokens, and the limits of estimates.
LLM API Cost Calculator: Compare Claude, GPT & Gemini Pricing Side by Side
Paste a prompt, set the expected output tokens, and compare per-request API costs across Claude, GPT and Gemini models. Covers input/output pricing structure, auto-updated price tables, and estimate limits.
Recent Articles
curl Options Cheat Sheet: What -X, -H and -d Actually Do
A reference for the curl options you meet in real API work: why -d already implies POST, how -d differs from --data-raw, the @ prefix that silently reads a file, single vs double quotes, and why -k and -L deserve more caution than they usually get.
Converting Between JSON Schema and Zod: How required Maps to .optional()
Inside a two-way converter that turns JSON Schema into a Zod schema and Zod code back into JSON Schema. Covers the inverted defaults between required and .optional(), the constraint mapping table, and how the Zod side is parsed without executing any code.
SQL Clause Order Reference: Why WHERE Can't See Your SELECT Alias
The order you write SQL clauses is not the order the database runs them. A reference for the logical execution order (FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT), why aliases fail in WHERE, when to use WHERE vs HAVING, and the MySQL/PostgreSQL differences that bite.
Unified Diff Format Reference: Reading @@ Hunks in git diff Output
How to read the unified diff format git produces: what the four numbers in @@ -12,7 +12,9 @@ mean, why a one-character edit shows as a whole-line replacement, the whitespace and line-ending traps, \ No newline at end of file, combined @@@ diffs on merges, and rename detection via similarity index.
UTC to JST Reference: The 9-Hour Offset, Cheat Sheet & Timezone Pitfalls
Convert between UTC and JST (Japan Standard Time) with a cheat sheet. Covers what Z and +09:00 mean in ISO 8601, when JavaScript date parsing silently shifts by 9 hours, MySQL/PostgreSQL timezone behavior, and why GitHub Actions cron always runs in UTC.
CREATE TABLE Reference: MySQL vs PostgreSQL vs SQLite Types & Constraints
A cross-database CREATE TABLE (DDL) reference with cheat sheets for data types, auto-increment keys (AUTO_INCREMENT / IDENTITY / rowid), foreign key ON DELETE behavior, and the CHECK constraint that MySQL silently ignores.