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 why the matrix-nio[e2e] extra is mandatory), 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.
Metadata
Release files for clawsome 2026.9.13
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| clawsome-2026.9.13.tar.gz | 304.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| clawsome-2026.9.13-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 546.1 kB
Release files / clawsome-2026.9.13.tar.gz
| Download URL | clawsome-2026.9.13.tar.gz |
|---|---|
| Size | 304.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0ea0ff609f44a2b21065dbaf4ead869cc5ce834b5f94569ffb4414ecdfe0ecea
|
|
BLAKE2b-256 checksum How to use checksums |
65bb9dec37f28520a0aed4a53dff73f2b75207a41160d60dce77111529afeafe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.7
|
Release files / clawsome-2026.9.13-py3-none-any.whl
| Download URL | clawsome-2026.9.13-py3-none-any.whl |
|---|---|
| Size | 241.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
99dd2369c46d471e8037a0e10e4b66b130de5beeeb2da56dd0c328c6835e5da1
|
|
BLAKE2b-256 checksum How to use checksums |
9a21822d51ec0a086069dc42c21b12e4de7c77b04b86446fb1872ef41e6acdbf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.7
|