Plug-and-play AI cartridge hub — package, distribute, and run composable AI harness configurations
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tendos-0.1.3.tar.gz.
File metadata
- Download URL: tendos-0.1.3.tar.gz
- Upload date:
- Size: 141.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4b674ce272cda6207128839f289e9ce5a3b7547ab844884ea3d43ea3adae8fc
|
|
| MD5 |
55f2b350542837f9402cf021e22949ea
|
|
| BLAKE2b-256 |
acdf769803f52ae43b476f96ec281cfbf679b826618ac0ff60f3511d8b8e1f25
|
File details
Details for the file tendos-0.1.3-py3-none-any.whl.
File metadata
- Download URL: tendos-0.1.3-py3-none-any.whl
- Upload date:
- Size: 18.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1b30715dfe46a3ba21ab00f6e7999e32c7f8f8ff368da3bc34f95bb5fca4b8a
|
|
| MD5 |
6d6ce7dabbf2e8adeaf2abe75e898104
|
|
| BLAKE2b-256 |
fd84bf6e41ff701b3673c36ee1a9288466af96869cd9768caac6067d99b5f445
|