Metadata-Version: 2.5
Name: tokin
Version: 0.0.1
Summary: Make any agent harness token-native.
Project-URL: Homepage, https://github.com/camel-ai/tokin
Project-URL: Repository, https://github.com/camel-ai/tokin
Project-URL: Issues, https://github.com/camel-ai/tokin/issues
Author-email: Yuan He <yuanhe.cs.ai@gmail.com>
License-Expression: Apache-2.0
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.12
Requires-Dist: aiohttp>=3.10
Requires-Dist: jinja2>=3.1
Requires-Dist: openai>=2
Requires-Dist: transformers>=5.6
Description-Content-Type: text/markdown

# tokin
Make any agent harness token-native.

<p align="center">
  <img src="assets/architecture.svg" alt="The harness sends messages to tokin and gets back text and tool calls. tokin sends input_ids to the inference server and gets back output_ids and logprobs." width="100%">
</p>

The harness keeps speaking text over a standard chat-completions API. The inference
server only ever receives token ids. tokin owns the chat template in between, so the
ids a model generated on one turn are the ids the next turn's prompt carries — no
detokenize/retokenize round trip, no silent drift.
