Open-source Chief of Staff in a box. Opinionated, proactive, runs on your own infra.
Project description
cosinabox
Open-source Chief of Staff in a box. Opinionated, proactive, runs on your own infra.
CoSinaBox is a self-hosted AI Chief of Staff agent that runs your day. It ships with default morning briefing, pre-meeting prep, evening wrap, weekly review, and follow-up tracking. You configure who it's for, not what it does.
Key Features
- 5 built-in jobs: morning briefing, pre-meeting prep, evening wrap, weekly review, follow-up nudges
- Telegram-first: primary interface via Telegram bot
- Google integration: Calendar, Gmail, Drive (optional)
- SQLite memory: persistent context without external databases
- Zero telemetry: runs entirely on your infra with your API keys
- Extensible: add custom jobs via a thin user repo
Prerequisites
- Python 3.11+
- Anthropic API key (Claude powers the agent)
- Telegram bot token (via @BotFather)
- Optional: Google OAuth credentials (for Calendar/Gmail/Drive)
- Optional: Fireflies API key (for meeting transcripts)
Quickstart
# Install the engine
pip install cosinabox
# Scaffold your user repo
cosinabox init my-cos
cd my-cos
# Configure (edit .env with your API keys, then customize personality.md)
cp .env.example .env
$EDITOR .env
$EDITOR personality.md
# Verify setup
cosinabox doctor
# Run
cosinabox run
Development Setup
# Clone and install in dev mode
git clone https://github.com/user/cosinabox.git
cd cosinabox
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev,google,fireflies,search,attio]"
# Install pre-commit hooks
pre-commit install
# Run tests
pytest
# Lint & type-check
ruff check src tests
mypy src
See CONTRIBUTING.md for full development guidelines.
Project Structure
cosinabox/
├── src/cosinabox/
│ ├── agent/ # Claude API loop, routing, cost tracking
│ ├── app/ # App orchestrator (config, tools, jobs, alerts, chat)
│ ├── bot/ # Telegram adapter
│ ├── cli/ # CLI commands (init, run, doctor)
│ ├── jobs/ # 5 built-in jobs
│ ├── memory/ # SQLite persistence layer
│ ├── scheduling/ # APScheduler integration
│ ├── tools/ # External integrations (Google, Fireflies, Serper)
│ ├── prompts/ # Default prompt templates
│ ├── personas/ # Persona templates
│ ├── schemas/ # JSON schemas for config validation
│ └── templates/ # User-repo scaffold (used by `cosinabox init`)
├── tests/
│ ├── unit/ # Unit tests
│ └── stress/ # Stress/integration tests
└── docs/ # Architecture and design docs
Architecture
CoSinaBox follows an engine + thin user repo pattern (similar to Hugo + content, or Next.js + app code):
- Engine (
cosinaboxpackage): the agent loop, scheduling, tools, and built-in jobs - User repo (scaffolded by
cosinabox init): your personality, stakeholders, integrations config, and optional custom jobs
For detailed architecture, see docs/specs/2026-04-11-cosinabox-design.md.
Privacy
- Zero telemetry by default -- no data leaves your machine except to APIs you explicitly configure
- AGPL-3.0 license to protect against SaaS extraction without contribution
- README documents every external service the engine touches
Running Tests
# All tests
pytest
# Unit tests only
pytest tests/unit/
# With coverage
pytest --cov=cosinabox
License
AGPL-3.0-or-later. 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
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 cosinabox-0.1.0.tar.gz.
File metadata
- Download URL: cosinabox-0.1.0.tar.gz
- Upload date:
- Size: 520.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ffb50bca4f678aa9bc5c4614b65cca77a14569d1ae8725fd1fa130f3dea7891
|
|
| MD5 |
4db746a1903fbf22763952df0be85d8c
|
|
| BLAKE2b-256 |
252ee1135ed5c69faacb1fe6a09a3ea07b314c000eadd0c58d46495a73db13ea
|
Provenance
The following attestation bundles were made for cosinabox-0.1.0.tar.gz:
Publisher:
release.yml on rovikrobert/cosinabox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cosinabox-0.1.0.tar.gz -
Subject digest:
2ffb50bca4f678aa9bc5c4614b65cca77a14569d1ae8725fd1fa130f3dea7891 - Sigstore transparency entry: 1343730103
- Sigstore integration time:
-
Permalink:
rovikrobert/cosinabox@d93e7bef1dac2f11f48b9c88aff668aa32e81403 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/rovikrobert
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d93e7bef1dac2f11f48b9c88aff668aa32e81403 -
Trigger Event:
push
-
Statement type:
File details
Details for the file cosinabox-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cosinabox-0.1.0-py3-none-any.whl
- Upload date:
- Size: 252.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1bca65079fa6b9ef1e9f202a81373e60eae256e600008e0f108f947b2fd0e47e
|
|
| MD5 |
17bd512089e5310908d8ccf21cd4f919
|
|
| BLAKE2b-256 |
c2df3cb3ad2239a44588edbf8bfa009217fdb0217d181ea3ba94d76b9cb3cd62
|
Provenance
The following attestation bundles were made for cosinabox-0.1.0-py3-none-any.whl:
Publisher:
release.yml on rovikrobert/cosinabox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cosinabox-0.1.0-py3-none-any.whl -
Subject digest:
1bca65079fa6b9ef1e9f202a81373e60eae256e600008e0f108f947b2fd0e47e - Sigstore transparency entry: 1343730104
- Sigstore integration time:
-
Permalink:
rovikrobert/cosinabox@d93e7bef1dac2f11f48b9c88aff668aa32e81403 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/rovikrobert
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d93e7bef1dac2f11f48b9c88aff668aa32e81403 -
Trigger Event:
push
-
Statement type: