Skip to main content

Universal token compressor for AI agents — MCP, OpenAI, LangChain, CLI. 50+ languages, zero ML models.

Project description

Synthelion — Universal Token Compressor for AI Agents

Synthelion compresses prompts before they reach any AI model — cutting token usage by up to 70%, reducing API costs, and speeding up responses. It works with any agent or framework: Claude Code, OpenAI, LangChain, OpenCode, Cursor, and more.

Supports 50+ languages out of the box. No AI model required. No configuration.

"Why use many tokens when few tokens do trick?" — A caveman (and your wallet).


Install

pip install synthelion

Integrations

MCP — Claude Code, Claude Desktop, OpenCode, Cursor, Windsurf, Continue…

Any agent that supports the Model Context Protocol can use Synthelion as a tool server.

1. Open your agent's MCP settings file:

Agent Settings file
Claude Code ~/.claude/settings.json
Claude Desktop (macOS) ~/Library/Application Support/Claude/claude_desktop_config.json
Claude Desktop (Windows) %APPDATA%\Claude\claude_desktop_config.json
OpenCode ~/.config/opencode/config.json
Cursor / Windsurf MCP settings in the app

2. Add this block:

{
  "mcpServers": {
    "synthelion": {
      "command": "synthelion-mcp"
    }
  }
}

3. Restart the agent. Done.

Zero-install with uvx (no pip install needed if you have uv):

{
  "mcpServers": {
    "synthelion": {
      "command": "uvx",
      "args": ["synthelion-mcp"]
    }
  }
}

Once connected, just ask naturally:

"Compress this text to save tokens"
"Summarize this article in 3 sentences"
"Detect the language of this message"
"Compress this JSON / HTML / diff / log"


OpenAI — GPT-4, GPT-4o, Codex, and any OpenAI-compatible API

from openai import OpenAI
from synthelion.plugins.openai_tools import get_tool_definitions, execute_tool

client = OpenAI()
tools = get_tool_definitions()

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Compress this text: I would like to know if it is possible..."}],
    tools=tools,
    tool_choice="auto",
)

# Handle tool calls returned by the model
for tool_call in response.choices[0].message.tool_calls or []:
    result = execute_tool(tool_call.function.name, tool_call.function.arguments)
    print(result)

LangChain — LangGraph, LCEL, ReAct agents

pip install "synthelion[langchain]"
from synthelion.plugins.langchain_tools import get_tools
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent

llm = ChatOpenAI(model="gpt-4o")
tools = get_tools()

agent = create_react_agent(llm, tools)
result = agent.invoke({"messages": [{"role": "user", "content": "Compress this prompt: ..."}]})

Works with any LangChain-compatible LLM (OpenAI, Anthropic, Groq, Ollama, …).


Python API — any custom agent or pipeline

from synthelion import CompressionService, CompressionLevel, ContentRouter, CompressionProfile

# Compress text
svc = CompressionService()
result = svc.compress(
    "I would like to know if it is possible to receive information about cheap restaurants in Rome.",
    CompressionLevel.SEMANTIC,
)
print(result.compressed_text)   # "know possible receive information cheap restaurant Rome"
print(f"{result.efficiency_pct:.1f}% saved")

# Auto-route any content type (JSON, HTML, diff, log, code, prose)
router = ContentRouter.from_profile(CompressionProfile.BALANCED)
routed = router.route(my_content)
print(routed.strategy_used, f"{routed.savings_pct:.1f}% saved")

CLI — shell scripts, pipelines, any language

# Compress text
synthelion compress --text "I would like to know if it is possible..." --level semantic

# Detect language
synthelion detect --text "Guten Morgen, wie geht es Ihnen?"

# Auto-route a file
synthelion route --file context.json

# Summarize
synthelion summarize --text "..." --sentences 3

# Start MCP server manually
synthelion serve-mcp

Pipe-friendly — reads from stdin if no --text or --file is given:

cat big_prompt.txt | synthelion compress --level aggressive

Tools

Tool What it does
compress Removes stop words, lemmatizes content words. Up to 70% token reduction.
detect_language Identifies language of any text. Returns ISO 639-3 code.
route_content Auto-detects JSON, HTML, diff, log, code or prose and applies the best algorithm.
summarize Extractive summarization — keeps the most important sentences (TF-IDF or TextRank).
compress_batch Compresses a list of texts in one call.

Compression levels

Level What it removes Typical savings
light Stop words (articles, prepositions, conjunctions…) 25–35%
semantic Stop words + lemmatization to base form 30–69%
aggressive Everything above + generic verbs and descriptive adjectives 35–70%

Default: semantic.


Supported languages (50+)

Afrikaans · Arabic · Armenian · Basque · Belarusian · Bengali · Bulgarian · Catalan · Chinese · Croatian · Czech · Danish · Dutch · English · Estonian · Finnish · French · Galician · German · Greek · Hebrew · Hindi · Hungarian · Icelandic · Indonesian · Irish · Italian · Japanese · Kannada · Kazakh · Korean · Latin · Latvian · Lithuanian · Macedonian · Malay · Marathi · Norwegian · Persian · Polish · Portuguese · Romanian · Russian · Serbian · Slovak · Slovenian · Spanish · Swedish · Tamil · Telugu · Thai · Turkish · Ukrainian · Urdu · Vietnamese

Language is detected automatically from the text. Pass an explicit ISO 639-3 code to override.


Troubleshooting

synthelion-mcp: command not found

Use the module form instead:

{
  "mcpServers": {
    "synthelion": {
      "command": "python",
      "args": ["-m", "synthelion.plugins.mcp_server"]
    }
  }
}

Or use uvx — it always works without PATH issues.


Links

© 2026 Passaro Francesco Paolo — Digitalsolutions.it

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

synthelion-1.0.2.tar.gz (12.8 MB view details)

Uploaded Source

Built Distribution

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

synthelion-1.0.2-py3-none-any.whl (12.8 MB view details)

Uploaded Python 3

File details

Details for the file synthelion-1.0.2.tar.gz.

File metadata

  • Download URL: synthelion-1.0.2.tar.gz
  • Upload date:
  • Size: 12.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for synthelion-1.0.2.tar.gz
Algorithm Hash digest
SHA256 208e2ae7fe2187f85a1c5de9e6dc7c0f48c04a55b0aaf5e4b2f5c2a8f82d3273
MD5 c2e037da97ccfdc2a01d7e31ee3b9238
BLAKE2b-256 df88faeea3d68ff5d9cf01a1df727e89af6fe6a585e45400ab78530ea49cb12c

See more details on using hashes here.

File details

Details for the file synthelion-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: synthelion-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 12.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for synthelion-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6338bdda73635e5fd38d7d4713439951545540204175cf52e7f4cb6436464d30
MD5 31d8552e252be84d4399fa0dbda3c98a
BLAKE2b-256 13b52d5274fa104f40c5b481b05d243c66a09b9ce24ea99f8f5d2330135a69a4

See more details on using hashes here.

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