Skip to main content

The context compression layer for AI agents - typically 0-54% fewer tokens on real high-entropy content, up to 95% on repetitive logs/fixtures (best-case ceiling), reversible via CCR

Project description

  ███████╗ ██╗   ██╗ ██████╗  ██╗
  ██╔════╝ ██║   ██║ ██╔══██╗ ██║
  █████╗   ██║   ██║ ██████╔╝ ██║
  ██╔══╝   ██║   ██║ ██╔══██╗ ██║
   ██║      ╚██████╔╝ ██║  ██║ ███████╗
   ╚═╝       ╚═════╝  ╚═╝  ╚═╝ ╚══════╝
 The context compression layer for AI agents
  

Typically 0–54% fewer tokens on real high-entropy content · up to 95% on repetitive logs/fixtures (honest read) · a Claude Code plugin · local-first · reversible

Release License: Apache 2.0

Install · Proof · Library · Community


Furl compresses everything your Claude Code agent reads — tool outputs, logs, web fetches, RAG chunks — before it reaches the model. Same answers, a fraction of the tokens. Every dropped byte stays retrievable on demand.

The name is nautical: to furl is to roll up a sail — Furl rolls long context up out of the model's way and keeps it on a line, ready to unfurl (retrieve) the instant you need it.

Furl in action

Install

Two commands inside Claude Code:

/plugin marketplace add omar-y-abdi/furl
/plugin install furl@furl

That's it — this installs the compression hook, the MCP tools, and the skill. No pip install, no setup: Furl fetches itself on first use. Requires uv on your PATH (same as the official serena plugin).

What you get

  • Auto-compression hook — shrinks large Bash / WebFetch / WebSearch / Task (sub-agent) outputs before they enter context. Fail-open: never breaks a tool call. It does not touch your Read / Grep / Glob file reads — by design, so a later Edit still sees exact file bytes; those reads (often a coding agent's largest context cost) pass through uncompressed (why).
  • Signal-aware offload + sliceable retrieval — a payload too big to compress inline (e.g. a 33 MB trace) comes back as a structured summary (schema, per-field value histograms, example rows) instead of a truncated head/tail, and the agent pulls a narrow slice on demand — retrieve(hash, select_field="name", select_equals="DroppedFrame") or a numeric range — without materializing the whole thing.
  • MCP toolsfurl_compress, furl_retrieve, furl_stats, furl_purge (erase stored originals), furl_search (find by content substring), furl_list (list stored entries). A seventh tool, furl_read, exists but is off by default — enable with FURL_MCP_READ=1 (see LIBRARY.md).
  • Skill — explains the <<ccr:HASH>> retrieval flow and how to tune or disable it.

Tuning, disabling (FURL_HOOK_ENABLED=0), and the full reference: plugins/furl/README.md. Retrieval TTL differs by surface: the library defaults to 30 minutes, while this Claude Code plugin ships a 24 h window (FURL_CCR_TTL_SECONDS=86400) via its MCP env.

Proof

Token reduction on real captured data — reproducible, inputs committed under benchmarks/data/. Every number uses the engine's own tokenizer; needle recall is 100% (a known unique row is always recoverable, in the output or via CCR). Read every figure below as a best-case ceiling, not a typical — the honest read follows.

Best-case ceilings — low-entropy dev fixtures (the compressor's happy path):

Dataset Items Before After Reduction Info retention
code 7 41,025 471 99% 100%
multiturn 135 14,866 2,073 86% 100%
logs 90 8,595 619 93% 100%
search 90 4,102 318 92% 100%
repeated logs 90 3,621 120 97% 100%
disk 9 694 279 60% 100%

Across the corpus: 95% fewer tokens (72,903 → 3,880) at 100% information retention. Full methodology and the 6-seed adversarial sweep: BENCHMARKS.md.

Honest read: the numbers above are best-case, low-entropy ceilings measured on the dev fixtures — two independent, out-of-sample audits show they degrade by 6–43pp on fresh high-entropy / near-unique / realistic data (exactly where real logs and listings live). On genuinely high-entropy content, honest lossless savings sit in the 0–54% band, not 60–95% (code 0%, search 40%, repeated_logs 54%); read every figure here as a ceiling, not a typical, and see the tier-aware breakdown in BENCHMARKS.md.

The code row's 99% is CCR-offload of a large non-file-read tool output (e.g. Bash dumping source text); an agent's own Read/Grep/Glob file access bypasses the compression hook by design and passes through unchanged, at 0%.

Also a Python library

The same engine drops into any Python app or MCP host: from furl_ctx import compress. Install, usage, pipeline internals, prompt-caching contract, and the full FURL_* config reference live in LIBRARY.md.

Community

Questions or bug reports → open a GitHub issue (the surest way to reach us). For chat, there's a Discord.

License

Apache 2.0 — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

furl_ctx-1.0.3.tar.gz (783.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

furl_ctx-1.0.3-cp310-abi3-manylinux_2_28_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ x86-64

furl_ctx-1.0.3-cp310-abi3-manylinux_2_28_aarch64.whl (5.3 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARM64

furl_ctx-1.0.3-cp310-abi3-macosx_11_0_arm64.whl (5.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

furl_ctx-1.0.3-cp310-abi3-macosx_10_12_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file furl_ctx-1.0.3.tar.gz.

File metadata

  • Download URL: furl_ctx-1.0.3.tar.gz
  • Upload date:
  • Size: 783.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for furl_ctx-1.0.3.tar.gz
Algorithm Hash digest
SHA256 212659e8a0ef2df47ffcc6db1af0c2cdd6a2b11c898921b2971c262fd7db25da
MD5 d03bf84cdbc1867d6b6406f1b3fab368
BLAKE2b-256 822573e4db3b94e1c703f1ef2ae2337b48afdf4ada22ec653a5b492320bfa06a

See more details on using hashes here.

Provenance

The following attestation bundles were made for furl_ctx-1.0.3.tar.gz:

Publisher: release.yml on omar-y-abdi/furl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file furl_ctx-1.0.3-cp310-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for furl_ctx-1.0.3-cp310-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2bb920eebcf41c71ef3795c3685b327db7cd44ea7935f47fc95f38b18f35f5b2
MD5 0a068ac30af2f4ab51a368d59df47d9a
BLAKE2b-256 4b4e02bdfe3348b5f82f08c051c835274cbb9061d48060271831b1ea47ce174e

See more details on using hashes here.

Provenance

The following attestation bundles were made for furl_ctx-1.0.3-cp310-abi3-manylinux_2_28_x86_64.whl:

Publisher: release.yml on omar-y-abdi/furl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file furl_ctx-1.0.3-cp310-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for furl_ctx-1.0.3-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 65444ba66fc180eb3c2f38165fb1ea24b7ed1bdf8e2bd5c0eb705bcc7b39a0b0
MD5 eadc66bf39aea53970ed962541f94a65
BLAKE2b-256 777baa89f0b4d10c73c4d5cc50545a9158631b165d935a7fa93d9402ab1f5b1c

See more details on using hashes here.

Provenance

The following attestation bundles were made for furl_ctx-1.0.3-cp310-abi3-manylinux_2_28_aarch64.whl:

Publisher: release.yml on omar-y-abdi/furl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file furl_ctx-1.0.3-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for furl_ctx-1.0.3-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f3a5bb004b81fb1712fb734830d87435be9006e52ca0fe9965429b9cc0a4b595
MD5 265395378a5df25f643e69e75abb0d81
BLAKE2b-256 99d4c30ac51247b65f6d5dd939c458e837912e70a7e2f82c7b04eecc09dc3073

See more details on using hashes here.

Provenance

The following attestation bundles were made for furl_ctx-1.0.3-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: release.yml on omar-y-abdi/furl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file furl_ctx-1.0.3-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for furl_ctx-1.0.3-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fbcc8a12af581a234b6d56bbf4ff3d90888068fe60d1198ef5c9a14b2430f7dd
MD5 832a7f00004ad430f8cb235d92ae2cb4
BLAKE2b-256 9b91a4f006fd7cdd73c8c1203cf1f0d890f0248e183907f888dac18d9c039bcc

See more details on using hashes here.

Provenance

The following attestation bundles were made for furl_ctx-1.0.3-cp310-abi3-macosx_10_12_x86_64.whl:

Publisher: release.yml on omar-y-abdi/furl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page