A lean Python harness for running persistent AI agents
Project description
Clawsome
A lean python harness for running persistent AI agents.
Clawsome is under early, active development. Expect rough edges, breaking changes, and missing features. Feedback and contributions are welcome.
Setup
Clawsome talks to a few external services (Ollama, SearXNG, a Matrix
homeserver) — get those running first, then pip install -e . and
point claw at a populated claw.yaml.
→ See docs/setup.md for prerequisites, install notes
(including the macOS libolm wrinkle), and a first-boot checklist.
Architecture
A single clawsome process manages multiple agents, each with a workspace (state on
disk) and one or more channels (inbound surfaces — Matrix is the shipped
one). Per-turn, the agent loads its transcript, assembles a system prompt
from injected identity files + retrieved memory, runs an Ollama tool loop,
and replies. Background tasks (compaction, memory_flush, reindex, cron,
session rotate) run off the user-reply path. An optional
control plane lets allowlisted operators run in-band admin commands
(%stop, %compact, %clear, …) that are intercepted before the
model and never enter the transcript.
→ See docs/architecture.md for the full mental
model, request lifecycle, and workspace file contract.
Configuration
claw.yaml is parsed once at startup; editing requires a restart. The
shipped claw.example.yaml is a runnable template with inline comments.
→ See docs/configuration.md for the full key-by-key
reference.
Operations
Background tuning, daily session rotate, memory retrieval cadence, Matrix
bot first-deploy (token + cross-signing UIA + ghost-DM avoidance), the
admin-command runbook (%stop/%compact/%clear/%subagents/
%verbose/%thinking), and log-based troubleshooting.
→ See docs/operations.md.
Extending
Three extension points: skills (workspace-local; markdown protocol +
optional tool.py), built-in tools (in-tree; universal capability),
channels (in-tree; new inbound surface). Skills cover 99% of cases.
→ See docs/extending.md.
Deployment
pip install exposes a claw console script that takes
--config <path/to/claw.yaml> and runs in the foreground. Wire it into
launchd / systemd / your process manager of choice as a long-lived service
running under a dedicated user. This repo intentionally does not ship
example service files — paths, log destinations, and label/unit names all
depend on the host layout.
Contributing
Issues and pull requests are welcome on GitHub.
Tests
pip install -e ".[dev]" # pytest + pytest-asyncio
pytest -q
Pure-logic unit tests plus one Agent smoke test — no live Ollama,
Matrix, or network needed (fakes + tmp_path throughout); runs in
under a second. Tests use neutral placeholders only (no real hostnames
or MXIDs) — please keep new ones that way.
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 clawsome-2026.5.20.tar.gz.
File metadata
- Download URL: clawsome-2026.5.20.tar.gz
- Upload date:
- Size: 101.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4b3042d22333c35ae5eeb791ce3b8cea613dbb23ca5efd5ff818247cbce7f9d
|
|
| MD5 |
18309fe05849d202d98df1c5fab74346
|
|
| BLAKE2b-256 |
98db011a052292f5d5baa0e8fe92d83c6528140aa06a6f12399ab7c4232ed4d3
|
File details
Details for the file clawsome-2026.5.20-py3-none-any.whl.
File metadata
- Download URL: clawsome-2026.5.20-py3-none-any.whl
- Upload date:
- Size: 104.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a5929a00f866a28bdd828afc779c1a5c525fd9a0b8ac8c3eb450326a2a037ed
|
|
| MD5 |
17eaa1ad6872bf9705ba8c9d10f3dc87
|
|
| BLAKE2b-256 |
3100a240a81cb7346279db5b3fcd0bbe7f4637f2dee989b71b634d003a726236
|