A framework for running persistent AI agents.
Project description
Cousins
Working name - see naming. A framework for running persistent AI agents ("cousins").
Status: 0.1.0, pre-release. This repository is the product cut
of an existing household framework, being rebuilt clean - free of any
household, personal, or employer-specific material (see
docs/PERIMETER.md).
What this is
A cousin is a long-lived AI agent with its own memory, identity, and chat surface. The framework provides the machinery to spawn, run, and maintain them. The original lives as a private household deployment; this repo is the distributable, general-purpose extraction of it.
Layout
src/cousins/ the package
tests/unit/ fast, isolated tests
tests/auto/ integration / end-to-end tests
docs/ architecture, contribution, perimeter policy
.github/workflows growth: CI
Getting started
cousins init # lay out the runtime tree at a default root
cousins init --root ./demo # ...or at a path you choose
cousins onboard --root ./demo/cousins # guided setup for a new cousin
cousins init is idempotent - safe to re-run. cousins onboard asks a
handful of questions and scaffolds a cousin home with a validated
cousin.toml.
With Nix:
nix build # build the package
nix develop # dev shell
nix flake check # run the test suite in a sandbox
Running the tests
No dependencies, no pytest - stdlib only:
python3 -m tests._runner # everything
python3 -m tests._runner unit # only unit tests
python3 -m tests._runner --filter version -v
Exit code is 0 when every test passes, 1 otherwise. CI runs the
same command across Python 3.11-3.13.
Naming
"Cousins" is a working title carried over from the origin framework's
vocabulary. It is referenced only in README.md, pyproject.toml, and
src/cousins/__init__.py, so a rename is a three-file change.
Roadmap
Tracked as the product-track items in the origin framework's backlog: cross-platform installer, onboarding wizard, external chat channels, provider abstraction, versioned releases, a sandbox run-mode toggle, and public + internal documentation.
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 cousins-0.1.0.tar.gz.
File metadata
- Download URL: cousins-0.1.0.tar.gz
- Upload date:
- Size: 38.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"NixOS","version":"25.11","id":"xantusia","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdc76a6eb5b5c333e99c9e55a68aed17829a71f6ff69e3c9d0a9a7bbe4b29c63
|
|
| MD5 |
15a1e29b3a520fd1eb0d7346167394ae
|
|
| BLAKE2b-256 |
8f73075186b8b54d1418ea5f0a43bd68878c3116d1abf5e7fdf61d0a1016ed72
|
File details
Details for the file cousins-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cousins-0.1.0-py3-none-any.whl
- Upload date:
- Size: 44.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"NixOS","version":"25.11","id":"xantusia","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
483c5d54009fa5f6164987582ae41b2ca166a5861a56a0cfc47e6b5dbd8f6bd4
|
|
| MD5 |
db40b1b8ece5b7365f805403ecc353ee
|
|
| BLAKE2b-256 |
e062e72eb99b23d9ebaacf339ba75c346adfa392128c9ba65a3795f7cd577216
|