Tendos
Plug-and-play AI cartridge hub — package, distribute, and run composable AI harness configurations locally, then deploy the same cartridges to hosted Tendos Cloud.
Tendos is building toward "Docker for AI agents and harnesses": portable, signed cartridges with reproducible execution across local machines and managed cloud.
The name and product metaphor come from Nintendo cartridges (plug in and play) combined with Docker-style portability and reproducibility.
Vision
Small and open language models are making local AI practical. Tendos exists so builders and teams do not have to re-create agent harnesses from scratch for every use case.
A Tendos cartridge is a reusable, swappable unit that can bundle:
- model configuration (base model + optional adapters)
- agent configuration (prompt, nodes, graph, tools)
- security and trust data (checksums, signatures)
- licensing and usage metadata
Long-term direction:
- local-first execution by default (privacy and ownership)
- hosted deployment option via Tendos Cloud (pay to host)
- community ecosystem where creators publish cartridges and users install/compose them quickly
What is Tendos today?
Tendos currently provides the v0.1 foundation for cartridge packaging and trust:
- Cartridge specification and manifest schema validation
- Cartridge loader for validate/pack/unpack workflows
- Ed25519 signing and signature verification
- AES-256-GCM encryption helpers for protected artifacts
- JWT token utilities for pay-per-use licensing primitives
- Harness YAML declarations for security guardrails, PII redaction, and update/sync policies
- Manual/custom harness declarations via
harness.declarations.custom_configfor user-defined launcher/runtime keys tendos runlauncher execution supports both host command launchers and self-contained Docker launchers
Quick Start
# Install
pip install tendos
# or
uv add tendos
# Initialize a new cartridge project
tendos init my-cartridge
# Validate the cartridge manifest
tendos validate my-cartridge/cartridge.json
# Pack into a distributable .cartridge archive
tendos pack my-cartridge/
# Sign the cartridge for integrity verification
tendos sign my-cartridge.cartridge --key ~/.tendos/signing.key
# Verify signature
tendos verify my-cartridge.cartridge --pub ~/.tendos/signing.pub --sig my-cartridge.cartridge.sig
# Run harness launcher (if declared)
tendos run my-cartridge/
Core Principles
- Local-first: run on your hardware first, with cloud as an option
- Portable artifacts: one cartridge format for reuse and sharing
- Trust by default: signing, verification, and integrity checks
- Composability: stack cartridges for domain-specific workflows
Development
# Clone and install
git clone https://github.com/junaidahmed361/tendos.git
cd tendos
uv sync --all-extras
# Run tests
make test
# Run full quality suite
make all
# Run pre-commit hooks
make pre-commit
Project Structure
src/tendos/
cartridge/ # Cartridge schema, loader, validator
runtime/ # Runtime execution engine (expanding)
hub/ # Marketplace and registry client (expanding)
security/ # Signing, encryption, JWT tokens
cli/ # Command-line interface
tests/
unit/
integration/
Quality Gates
All pull requests are expected to pass:
- ruff lint + formatting checks
- mypy strict type checks
- bandit static security scan
- pytest with coverage threshold
- pre-commit hooks
Roadmap (high level)
- Local execution runtime for cartridges
- Lockfile + compatibility checks for reproducibility
- Community hub for publish/discover/install workflows
- Tendos Cloud hosted deployment for managed agent execution
Contributing
Contributions are welcome. See CONTRIBUTING.md for guidelines.
License
Apache License 2.0 — see LICENSE.
Metadata
Release files for tendos 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tendos-0.1.3.tar.gz | 141.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tendos-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 160.9 kB
Release files / tendos-0.1.3.tar.gz
| Download URL | tendos-0.1.3.tar.gz |
|---|---|
| Size | 141.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c4b674ce272cda6207128839f289e9ce5a3b7547ab844884ea3d43ea3adae8fc
|
|
BLAKE2b-256 checksum How to use checksums |
acdf769803f52ae43b476f96ec281cfbf679b826618ac0ff60f3511d8b8e1f25
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / tendos-0.1.3-py3-none-any.whl
| Download URL | tendos-0.1.3-py3-none-any.whl |
|---|---|
| Size | 18.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b1b30715dfe46a3ba21ab00f6e7999e32c7f8f8ff368da3bc34f95bb5fca4b8a
|
|
BLAKE2b-256 checksum How to use checksums |
fd84bf6e41ff701b3673c36ee1a9288466af96869cd9768caac6067d99b5f445
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|