The AI-native wire format for structured data. 100% comprehension on every frontier model. 50-92% fewer tokens than JSON. 43B+ lossless round-trips across 17 formats. Spec v3.5.1 Stable.
47
stars
1,796
commits
Sep 8, 2026
updated
[!IMPORTANT] Reverse-engineered from original attention research. Four papers by Dayna Blackwell (2026, under review):
- GCF: A Token-Optimized Wire Format for Structured LLM Interactions
- Tokenizer-Attention Coupling: How BPE Merge Decisions Permanently Shape Transformer Internal Organization
- Stranded Attention: BPE Tokenization Permanently Constrains Transformer Structural Capacity
- Developmental Atlas of Attention Head Specialization: Spacing, Stranding, and the Capacity Tax of BPE Tokenization
GCF is built for the agentic loop, where the same structured context crosses the model boundary turn after turn. A single payload is already 50-92% smaller than JSON. But GCF also deduplicates repeated structure across turns and sends only deltas when context changes, so by the 5th overlapping call each response costs 99% fewer tokens than the JSON equivalent, and a full 10-call session runs 94.4% cheaper than re-sending JSON every turn. Session dedup and delta both need local IDs and a multi-turn design: neither JSON nor TOON can do this at all.
decode(encode(value)) == value for every structured value, verified across 43,000,000,000+ round-trips in 5 formats and 6 languages, with interop validated across 17 serialization formats. Zero runtime dependencies, in all seven SDKs.decode() converts back to any of them. Your existing schemas and validators work on the decoded output unchanged.No other single format is all four at once: schema-free (no .proto), lossless, token-compact (50-92% vs JSON), and model-readable with zero training. JSON is verbose, Protobuf needs a schema, MessagePack is binary, and TOON silently corrupts data (7.54% round-trip failure, 176,487 silent corruptions per 10M) and collapses on structured data (68.8% comprehension where GCF holds 91.2% and JSON 54.1%). GCF is designed at the tokenizer level: its pipe delimiter has a 0% merge rate with field names, while JSON's grammar symbols and TOON's tab are hardcoded as merged vocabulary entries in BPE tokenizers (TOON's tab merges with adjacent content on 32.91% of boundaries, the worst of any common separator, and JSON's quote on 8.17%), creating structural boundaries the model cannot recover.
pip install gcf-python # Python
npm install @blackwell-systems/gcf # TypeScript
go get github.com/blackwell-systems/gcf-go # Go
cargo add gcf # Rust
dotnet add package BlackwellSystems.Gcf # .NET
Or wrap any existing MCP server with zero code changes:
pip install gcf-proxy
2,500+ LLM evaluations across 11 models, 4 providers, and 50+ independent test runs.
| Generic Profile (500 orders) | Graph Profile (500 symbols) | |
|---|---|---|
| GCF | 100% on every frontier model | 91.2% (10 models) |
| TOON | weakest format consistently | 68.8% |
| JSON | GCF avg >= JSON on every model | 54.1% |
| GCF | TOON | JSON | |
|---|---|---|---|
| Token efficiency (16 datasets) | wins 15/16 | wins 1/16 | wins 0/16 |
| Generation (28 runs, 11 models) | 5/5 | 1.0/5 | 5.0/5 |
| Token savings | 50-92% vs JSON | 30-60% vs JSON | baseline |
| 43,000,000,000+ round-trips | 0 failures |
Full results: gcformat.com/guide/benchmarks
from gcf import encode_generic
output = encode_generic({
"employees": [
{"id": 1, "name": "Alice", "department": "Engineering", "salary": 95000},
{"id": 2, "name": "Bob", "department": "Sales", "salary": 72000},
{"id": 3, "name": "Carol", "department": "Marketing", "salary": 85000},
],
})
GCF profile=generic
## employees [3]{id,name,department,salary}
1|Alice|Engineering|95000
2|Bob|Sales|72000
3|Carol|Marketing|85000
One header declares field names. Rows are positional values only. No field names repeated per record. Lossless: decode(encode(value)) == value for every structured value, proven across 43,000,000,000+ random round-trips in 5 formats and 6 languages.
For data with nodes, edges, and distance groups:
from gcf import encode, Payload, Symbol, Edge
output = encode(Payload(
tool="context_for_task", token_budget=5000, tokens_used=1847,
symbols=[
Symbol(qualified_name="github.com/org/repo/pkg.AuthMiddleware", kind="function", score=0.78, provenance="lsp_resolved", distance=0),
Symbol(qualified_name="github.com/org/repo/pkg.NewServer", kind="function", score=0.54, provenance="lsp_resolved", distance=1),
],
edges=[Edge(source="github.com/org/repo/pkg.NewServer", target="github.com/org/repo/pkg.AuthMiddleware", edge_type="calls")],
))
GCF profile=graph tool=context_for_task budget=5000 tokens=1847 symbols=2 edges=1
## targets
@0 fn github.com/org/repo/pkg.AuthMiddleware 0.78 lsp_resolved
## related
@1 fn github.com/org/repo/pkg.NewServer 0.54 lsp_resolved
## edges [1]
@0<@1 calls
Local IDs (@0, @1) replace full names in edges. 81 tokens instead of 191 for JSON.
Try it live in the playground with real-time multi-format comparison. Paste JSON, YAML, or TOML. Encode from and decode to JSON, YAML, TOML, CSV, and MessagePack.
Lossless structured data encoding. Arrays, nested objects, mixed types, primitives, root scalars. Works on any data that deserializes to objects and arrays, regardless of source format.
## name [count]{field1,field2} declares field names once. Rows are pipe-separated values. Absent fields use ~, null uses -.> path columns: "customer>name" becomes a column, values go directly in the row. 20-48% fewer tokens on deeply nested API data. Variable-length arrays and irregular shapes use ^ attachment fallback.tags[2]: admin,user. Strings containing commas are quoted.key=value at the top level. Strings that collide with typed literals ("true", "123", "-") are quoted automatically.@0, @1. Edges reference by ID, not by repeating full identifiers.## targets, ## related) replace per-record metadata.Both profiles share the same grammar (common scalar grammar, key grammar, header format). The savings are structural and grow with payload size.
Emit a payload incrementally, without buffering it, for database cursors, pagination, and graph traversals too large to hold in memory.
[?] when the size isn't known yet (## edges [?]) and rows stream out as they are produced.##! summary symbols=8 edges=6 counts=2,1,3 backfills the real counts once the stream ends, so the model still gets exact totals.TOON's tabular header requires the row count up front, so it must buffer the full array before the first byte; GCF defers the count and fills it in at the end.
Session deduplication: Symbols sent in prior responses become bare references (@7 = 2 tokens vs 19 for full declaration). At production scale (500 symbols), session dedup alone cuts 86.3% by call 5; composed with delta, 99.0% per call. A 10-call session reaches 94.4% cumulative savings vs JSON (each response costs 171 tokens vs 29,072 for JSON).
Delta encoding: When the context changes slightly between queries, send only the diff. 81.2% additional savings on re-queries.
No other format has these. They compound across multi-turn agent interactions.
GCF was not tuned by trial and error. Its grammar was reverse-engineered from attention-level research into how BPE tokenization shapes what a transformer can represent, then validated after the fact by controlled from-scratch training.
The mechanism: a tokenizer's merge decisions permanently constrain a model's internal organization. Grammar symbols that BPE folds into the surrounding text (JSON's quotes and braces, TOON's tab) create structural boundaries the model cannot cleanly recover; a delimiter with a 0% merge rate against field names (GCF's pipe) does not. The design follows from that measurement, not from a token count.
Four papers by Dayna Blackwell (2026, currently under review) establish it: the GCF format paper, Tokenizer-Attention Coupling, Stranded Attention, and a Developmental Atlas of Attention Head Specialization. The effects are measured intrinsically and causally, from attention structure and controlled training at 1.3B scale, not scored by an LLM judge, so they are not explained away as "the benchmark just measures training exposure": GCF wins on models that have never seen it.
Read the full argument in the Tokenizer Analysis and the whitepaper.
| Language | Package | Repository |
|---|---|---|
| Go | go get github.com/blackwell-systems/gcf-go | gcf-go |
| TypeScript | npm install @blackwell-systems/gcf | gcf-typescript |
| Python | pip install gcf-python | gcf-python |
| Rust | cargo add gcf | gcf-rust |
| Swift | Swift Package Manager | gcf-swift |
| Kotlin | JitPack | gcf-kotlin |
| .NET | dotnet add package BlackwellSystems.Gcf | gcf-dotnet |
| MCP Proxy | pip install gcf-proxy | gcf-proxy (bidirectional, session dedup, HTTP frontend) |
| Claude Code Plugin | /plugin install | gcf-claude-plugin (one-command install, session stats hook) |
| Codex Plugin | codex plugin add | gcf-codex-plugin (one-command install, session stats hook) |
| VS Code | ext install blackwell-systems.gcf-vscode | gcf-vscode (syntax highlighting) |
| n8n | npm install n8n-nodes-gcf | gcf-n8n-nodes (workflow encode/decode) |
| JetBrains | Search "GCF" in Plugins | gcf-jetbrains (IntelliJ, PyCharm, WebStorm, GoLand) |
| Zed | Search "GCF" in Extensions | gcf-zed (tree-sitter syntax highlighting) |
| Tree-sitter | npm install tree-sitter-gcf | tree-sitter-gcf |
Zero runtime dependencies. Permanently. All seven implementations depend only on their language's standard library. No transitive dependencies. No supply chain risk. This is a permanent commitment: GCF will never take on external runtime dependencies. MIT licensed. All implementations support both generic profile (encodeGeneric) and graph profile (encode). CLI included in the six original language SDKs. Syntax highlighting via tree-sitter (Neovim, Helix, Zed).
Specification: SPEC v3.5.1 Stable with 265 conformance fixtures, 43,000,000,000+ lossless round-trips verified across 5 formats and 6 languages. Seven implementations (Go v1.6.2, Swift v2.6.1, .NET v0.1.0, the rest v2.5.2). Cross-language conformance verified.
| Project | |
|---|---|
| Chrome DevTools MCP | 47K★ · the Google Chrome DevTools team's MCP server; exposes live browser state (DOM, network, console, performance) to AI coding agents |
| Speakeasy | OpenAPI tooling (customers include Google, Verizon, Mistral AI, DocuSign, Vercel); GCF is a native output format in their oq CLI |
| OmniRoute | 17K★ · AI gateway, registry, and proxy between AI clients and model providers; GCF vendored into its compression engine |
| NetClaw | 610★ · AI-powered network automation (113 skills, 66 MCP integrations); replaced TOON with GCF across every MCP server |
| ctx | 552★ · real-time context selector for Claude Code; surfaces only the relevant tools from a 103K-node knowledge graph |
| Lynkr | 531★ · local LLM gateway for AI coding clients; GCF as a drop-in tool-result compressor alongside TOON |
| Open Data Products SDK | Linux Foundation · Python toolkit and MCP server for data-product standards; GCF sidecars for agent context |
| NeuroNest | agent-first IDE; first commercial GCF adoption, across four encoding surfaces with session dedup and delta |
| Raycast | JSON-to-GCF Converter extension in the Raycast Store, for the macOS productivity launcher |
MIT - Dayna Blackwell
1,529 commits
267 commits
The AI-native wire format for structured data. 100% comprehension on every frontier model. 50-92% fewer tokens than JSON. 43B+ lossless round-trips across 17 formats. Spec v3.5.1 Stable.
47
stars
1,796
commits
Sep 8, 2026
updated
[!IMPORTANT] Reverse-engineered from original attention research. Four papers by Dayna Blackwell (2026, under review):
- GCF: A Token-Optimized Wire Format for Structured LLM Interactions
- Tokenizer-Attention Coupling: How BPE Merge Decisions Permanently Shape Transformer Internal Organization
- Stranded Attention: BPE Tokenization Permanently Constrains Transformer Structural Capacity
- Developmental Atlas of Attention Head Specialization: Spacing, Stranding, and the Capacity Tax of BPE Tokenization
GCF is built for the agentic loop, where the same structured context crosses the model boundary turn after turn. A single payload is already 50-92% smaller than JSON. But GCF also deduplicates repeated structure across turns and sends only deltas when context changes, so by the 5th overlapping call each response costs 99% fewer tokens than the JSON equivalent, and a full 10-call session runs 94.4% cheaper than re-sending JSON every turn. Session dedup and delta both need local IDs and a multi-turn design: neither JSON nor TOON can do this at all.
decode(encode(value)) == value for every structured value, verified across 43,000,000,000+ round-trips in 5 formats and 6 languages, with interop validated across 17 serialization formats. Zero runtime dependencies, in all seven SDKs.decode() converts back to any of them. Your existing schemas and validators work on the decoded output unchanged.No other single format is all four at once: schema-free (no .proto), lossless, token-compact (50-92% vs JSON), and model-readable with zero training. JSON is verbose, Protobuf needs a schema, MessagePack is binary, and TOON silently corrupts data (7.54% round-trip failure, 176,487 silent corruptions per 10M) and collapses on structured data (68.8% comprehension where GCF holds 91.2% and JSON 54.1%). GCF is designed at the tokenizer level: its pipe delimiter has a 0% merge rate with field names, while JSON's grammar symbols and TOON's tab are hardcoded as merged vocabulary entries in BPE tokenizers (TOON's tab merges with adjacent content on 32.91% of boundaries, the worst of any common separator, and JSON's quote on 8.17%), creating structural boundaries the model cannot recover.
pip install gcf-python # Python
npm install @blackwell-systems/gcf # TypeScript
go get github.com/blackwell-systems/gcf-go # Go
cargo add gcf # Rust
dotnet add package BlackwellSystems.Gcf # .NET
Or wrap any existing MCP server with zero code changes:
pip install gcf-proxy
2,500+ LLM evaluations across 11 models, 4 providers, and 50+ independent test runs.
| Generic Profile (500 orders) | Graph Profile (500 symbols) | |
|---|---|---|
| GCF | 100% on every frontier model | 91.2% (10 models) |
| TOON | weakest format consistently | 68.8% |
| JSON | GCF avg >= JSON on every model | 54.1% |
| GCF | TOON | JSON | |
|---|---|---|---|
| Token efficiency (16 datasets) | wins 15/16 | wins 1/16 | wins 0/16 |
| Generation (28 runs, 11 models) | 5/5 | 1.0/5 | 5.0/5 |
| Token savings | 50-92% vs JSON | 30-60% vs JSON | baseline |
| 43,000,000,000+ round-trips | 0 failures |
Full results: gcformat.com/guide/benchmarks
from gcf import encode_generic
output = encode_generic({
"employees": [
{"id": 1, "name": "Alice", "department": "Engineering", "salary": 95000},
{"id": 2, "name": "Bob", "department": "Sales", "salary": 72000},
{"id": 3, "name": "Carol", "department": "Marketing", "salary": 85000},
],
})
GCF profile=generic
## employees [3]{id,name,department,salary}
1|Alice|Engineering|95000
2|Bob|Sales|72000
3|Carol|Marketing|85000
One header declares field names. Rows are positional values only. No field names repeated per record. Lossless: decode(encode(value)) == value for every structured value, proven across 43,000,000,000+ random round-trips in 5 formats and 6 languages.
For data with nodes, edges, and distance groups:
from gcf import encode, Payload, Symbol, Edge
output = encode(Payload(
tool="context_for_task", token_budget=5000, tokens_used=1847,
symbols=[
Symbol(qualified_name="github.com/org/repo/pkg.AuthMiddleware", kind="function", score=0.78, provenance="lsp_resolved", distance=0),
Symbol(qualified_name="github.com/org/repo/pkg.NewServer", kind="function", score=0.54, provenance="lsp_resolved", distance=1),
],
edges=[Edge(source="github.com/org/repo/pkg.NewServer", target="github.com/org/repo/pkg.AuthMiddleware", edge_type="calls")],
))
GCF profile=graph tool=context_for_task budget=5000 tokens=1847 symbols=2 edges=1
## targets
@0 fn github.com/org/repo/pkg.AuthMiddleware 0.78 lsp_resolved
## related
@1 fn github.com/org/repo/pkg.NewServer 0.54 lsp_resolved
## edges [1]
@0<@1 calls
Local IDs (@0, @1) replace full names in edges. 81 tokens instead of 191 for JSON.
Try it live in the playground with real-time multi-format comparison. Paste JSON, YAML, or TOML. Encode from and decode to JSON, YAML, TOML, CSV, and MessagePack.
Lossless structured data encoding. Arrays, nested objects, mixed types, primitives, root scalars. Works on any data that deserializes to objects and arrays, regardless of source format.
## name [count]{field1,field2} declares field names once. Rows are pipe-separated values. Absent fields use ~, null uses -.> path columns: "customer>name" becomes a column, values go directly in the row. 20-48% fewer tokens on deeply nested API data. Variable-length arrays and irregular shapes use ^ attachment fallback.tags[2]: admin,user. Strings containing commas are quoted.key=value at the top level. Strings that collide with typed literals ("true", "123", "-") are quoted automatically.@0, @1. Edges reference by ID, not by repeating full identifiers.## targets, ## related) replace per-record metadata.Both profiles share the same grammar (common scalar grammar, key grammar, header format). The savings are structural and grow with payload size.
Emit a payload incrementally, without buffering it, for database cursors, pagination, and graph traversals too large to hold in memory.
[?] when the size isn't known yet (## edges [?]) and rows stream out as they are produced.##! summary symbols=8 edges=6 counts=2,1,3 backfills the real counts once the stream ends, so the model still gets exact totals.TOON's tabular header requires the row count up front, so it must buffer the full array before the first byte; GCF defers the count and fills it in at the end.
Session deduplication: Symbols sent in prior responses become bare references (@7 = 2 tokens vs 19 for full declaration). At production scale (500 symbols), session dedup alone cuts 86.3% by call 5; composed with delta, 99.0% per call. A 10-call session reaches 94.4% cumulative savings vs JSON (each response costs 171 tokens vs 29,072 for JSON).
Delta encoding: When the context changes slightly between queries, send only the diff. 81.2% additional savings on re-queries.
No other format has these. They compound across multi-turn agent interactions.
GCF was not tuned by trial and error. Its grammar was reverse-engineered from attention-level research into how BPE tokenization shapes what a transformer can represent, then validated after the fact by controlled from-scratch training.
The mechanism: a tokenizer's merge decisions permanently constrain a model's internal organization. Grammar symbols that BPE folds into the surrounding text (JSON's quotes and braces, TOON's tab) create structural boundaries the model cannot cleanly recover; a delimiter with a 0% merge rate against field names (GCF's pipe) does not. The design follows from that measurement, not from a token count.
Four papers by Dayna Blackwell (2026, currently under review) establish it: the GCF format paper, Tokenizer-Attention Coupling, Stranded Attention, and a Developmental Atlas of Attention Head Specialization. The effects are measured intrinsically and causally, from attention structure and controlled training at 1.3B scale, not scored by an LLM judge, so they are not explained away as "the benchmark just measures training exposure": GCF wins on models that have never seen it.
Read the full argument in the Tokenizer Analysis and the whitepaper.
| Language | Package | Repository |
|---|---|---|
| Go | go get github.com/blackwell-systems/gcf-go | gcf-go |
| TypeScript | npm install @blackwell-systems/gcf | gcf-typescript |
| Python | pip install gcf-python | gcf-python |
| Rust | cargo add gcf | gcf-rust |
| Swift | Swift Package Manager | gcf-swift |
| Kotlin | JitPack | gcf-kotlin |
| .NET | dotnet add package BlackwellSystems.Gcf | gcf-dotnet |
| MCP Proxy | pip install gcf-proxy | gcf-proxy (bidirectional, session dedup, HTTP frontend) |
| Claude Code Plugin | /plugin install | gcf-claude-plugin (one-command install, session stats hook) |
| Codex Plugin | codex plugin add | gcf-codex-plugin (one-command install, session stats hook) |
| VS Code | ext install blackwell-systems.gcf-vscode | gcf-vscode (syntax highlighting) |
| n8n | npm install n8n-nodes-gcf | gcf-n8n-nodes (workflow encode/decode) |
| JetBrains | Search "GCF" in Plugins | gcf-jetbrains (IntelliJ, PyCharm, WebStorm, GoLand) |
| Zed | Search "GCF" in Extensions | gcf-zed (tree-sitter syntax highlighting) |
| Tree-sitter | npm install tree-sitter-gcf | tree-sitter-gcf |
Zero runtime dependencies. Permanently. All seven implementations depend only on their language's standard library. No transitive dependencies. No supply chain risk. This is a permanent commitment: GCF will never take on external runtime dependencies. MIT licensed. All implementations support both generic profile (encodeGeneric) and graph profile (encode). CLI included in the six original language SDKs. Syntax highlighting via tree-sitter (Neovim, Helix, Zed).
Specification: SPEC v3.5.1 Stable with 265 conformance fixtures, 43,000,000,000+ lossless round-trips verified across 5 formats and 6 languages. Seven implementations (Go v1.6.2, Swift v2.6.1, .NET v0.1.0, the rest v2.5.2). Cross-language conformance verified.
| Project | |
|---|---|
| Chrome DevTools MCP | 47K★ · the Google Chrome DevTools team's MCP server; exposes live browser state (DOM, network, console, performance) to AI coding agents |
| Speakeasy | OpenAPI tooling (customers include Google, Verizon, Mistral AI, DocuSign, Vercel); GCF is a native output format in their oq CLI |
| OmniRoute | 17K★ · AI gateway, registry, and proxy between AI clients and model providers; GCF vendored into its compression engine |
| NetClaw | 610★ · AI-powered network automation (113 skills, 66 MCP integrations); replaced TOON with GCF across every MCP server |
| ctx | 552★ · real-time context selector for Claude Code; surfaces only the relevant tools from a 103K-node knowledge graph |
| Lynkr | 531★ · local LLM gateway for AI coding clients; GCF as a drop-in tool-result compressor alongside TOON |
| Open Data Products SDK | Linux Foundation · Python toolkit and MCP server for data-product standards; GCF sidecars for agent context |
| NeuroNest | agent-first IDE; first commercial GCF adoption, across four encoding surfaces with session dedup and delta |
| Raycast | JSON-to-GCF Converter extension in the Raycast Store, for the macOS productivity launcher |
MIT - Dayna Blackwell
1,529 commits
267 commits