The plumbing every local AI experiment rebuilds, built once.
Project description
The plumbing every local AI experiment rebuilds, built once. athome is one SDK, CLI, and skill set for the machinery every experiment repo grows anyway — content-keyed caching, sidecar workers, record/replay LLM caching, launchd scheduling, detached overnight runs, and resumable progress.
Get started
uv add experiment-at-home
uv run athome --help
Driving with an agent? Paste this:
Add experiment-at-home (uv add experiment-at-home) and wrap my most expensive
pipeline step in its @cached decorator, namespaced after this project.
Docs: https://yasyf.github.io/experiment-at-home/
Claude Code plugin (the athome skills)
/plugin marketplace add yasyf/experiment-at-home
/plugin install athome@experiment-at-home
Use cases
Stop re-paying for the same expensive artifact every rerun
A pipeline rerun that re-derives every intermediate burns minutes (or API
dollars) to reproduce bytes you already had. Wrap the step; the cache is
content-keyed under ~/.athome/cache, shared across every repo on the machine:
from athome import cached
@cached(ns="ingest", version=1)
async def parsed_pages(pdf_digest: str) -> list[str]:
# the expensive part: OCR, chunking, whatever your pipeline re-derives
...
The second call with the same arguments returns from disk. Invalidation is one
edit: bump version=2 and the old entries are never read again.
Send tonight's sweep off before you close the laptop
An overnight script tied to a terminal dies with the terminal, and nohup
leaves you grepping for whether it finished. Detach it with a name:
uv run athome run --detach --name sweep -- uv run python sweep.py
The run gets its own log under ~/.athome/logs/runs/, and a completion
sentinel records the exit code. In the morning, uv run athome run wait sweep
returns instantly with that exit code — 0 or the failure you need to chase.
Move a corpus without wondering if it all arrived
rsync reports transfer success, not tree integrity — and macOS salts remote
copies with ._* AppleDouble droppings. Mirror with verification:
uv run athome sync ~/corpora/traces backup-host:corpora/traces --move
Every file is sha256-verified against the source before --move deletes
anything; a mismatch repairs and re-verifies, and an unverifiable tree blocks
deletion outright.
More in the docs
- Record/replay LLM caching — replay yesterday's API responses in today's tests, byte-for-byte — llmcache
- Sidecar workers — call GIL-bound engines from free-threaded Python over a version-handshaked pipe — workers
- launchd agents — declarative Calendar/Interval/KeepAlive schedules, no plist authoring — launchd
- Resumable progress — JSONL work-sets where crashed units retry and finished ones skip — progress
- One config file — every knob in
~/.athome/config.toml, every module a pydantic-settings section — config
Read the docs for the full guide.
Status: alpha — the primitives above are shipped and tested (including on free-threaded Python 3.14); MLX serving recipes, OCR engines, batch LLM lanes, and the autoresearch harness land in 0.2–0.3.
Licensed under PolyForm-Noncommercial-1.0.0.
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 experiment_at_home-0.10.0.tar.gz.
File metadata
- Download URL: experiment_at_home-0.10.0.tar.gz
- Upload date:
- Size: 205.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b0f7e6867899ea363596eef4bf50d7c80b057dd2c49a76bb93deee850744584
|
|
| MD5 |
b77f8dc6399f9b6cfdb3db4bb9cf6d24
|
|
| BLAKE2b-256 |
0beb61bc14b30ccd331af36f29aca4b71be5d6f85e66914095e8274881ccc5f2
|
Provenance
The following attestation bundles were made for experiment_at_home-0.10.0.tar.gz:
Publisher:
release-pypi.yml on yasyf/experiment-at-home
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
experiment_at_home-0.10.0.tar.gz -
Subject digest:
4b0f7e6867899ea363596eef4bf50d7c80b057dd2c49a76bb93deee850744584 - Sigstore transparency entry: 2201258622
- Sigstore integration time:
-
Permalink:
yasyf/experiment-at-home@0d17b71077186d709bfef948dcd74fe3fdf71457 -
Branch / Tag:
refs/tags/v0.10.0 - Owner: https://github.com/yasyf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@0d17b71077186d709bfef948dcd74fe3fdf71457 -
Trigger Event:
push
-
Statement type:
File details
Details for the file experiment_at_home-0.10.0-py3-none-any.whl.
File metadata
- Download URL: experiment_at_home-0.10.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.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0868afc5d100482485528bbb78d776ca1851fc473a796cfd1bb2e675551b64a1
|
|
| MD5 |
6b24347a55a0a0b1be29e7d8e48ed09e
|
|
| BLAKE2b-256 |
8cb359af7099765d599957268139af87e21a1238b5b33acafbaf3cd7d89e5302
|
Provenance
The following attestation bundles were made for experiment_at_home-0.10.0-py3-none-any.whl:
Publisher:
release-pypi.yml on yasyf/experiment-at-home
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
experiment_at_home-0.10.0-py3-none-any.whl -
Subject digest:
0868afc5d100482485528bbb78d776ca1851fc473a796cfd1bb2e675551b64a1 - Sigstore transparency entry: 2201258772
- Sigstore integration time:
-
Permalink:
yasyf/experiment-at-home@0d17b71077186d709bfef948dcd74fe3fdf71457 -
Branch / Tag:
refs/tags/v0.10.0 - Owner: https://github.com/yasyf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@0d17b71077186d709bfef948dcd74fe3fdf71457 -
Trigger Event:
push
-
Statement type: