Skip to main content

The plumbing every local AI experiment rebuilds, built once.

Project description

experiment-at-home

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.

CI PyPI Docs License: PolyForm-Noncommercial-1.0.0

Get started

uv add experiment-at-home
uv run athome --help
Terminal running 'uv run athome --help' — the cache, launchd, run, and sync command groups

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

experiment_at_home-0.4.0.tar.gz (118.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

experiment_at_home-0.4.0-py3-none-any.whl (151.8 kB view details)

Uploaded Python 3

File details

Details for the file experiment_at_home-0.4.0.tar.gz.

File metadata

  • Download URL: experiment_at_home-0.4.0.tar.gz
  • Upload date:
  • Size: 118.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for experiment_at_home-0.4.0.tar.gz
Algorithm Hash digest
SHA256 adf8b2ebb7f470c5dae6236536dbb5f5c908cc5e1d5ec913b58405d0f7c61732
MD5 4cbe9c9e502cf255964fe9dcdc13d23f
BLAKE2b-256 e484a3e0c572d650ac5f5cedbfc889f0297929d091a28298d489d1d123f7436c

See more details on using hashes here.

Provenance

The following attestation bundles were made for experiment_at_home-0.4.0.tar.gz:

Publisher: release-pypi.yml on yasyf/experiment-at-home

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file experiment_at_home-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for experiment_at_home-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7574f4cfb6828ccdb20f28712d18bc735c27bdf812fcf23bc78e92750cb6c5d7
MD5 ae4bb48d50719087a70af4fc6b1322cb
BLAKE2b-256 69bdb6830e57f3ce777bf21f17590c5db5e15b4bcff2ec586251c430c364abcf

See more details on using hashes here.

Provenance

The following attestation bundles were made for experiment_at_home-0.4.0-py3-none-any.whl:

Publisher: release-pypi.yml on yasyf/experiment-at-home

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page