experiment-at-home experiment-at-home
  • Reference
  • Changelog

Skills

A skill is a package of structured files that teaches an AI coding agent how to work with a specific tool or framework. The skill below was generated by Great Docs from this project’s documentation. Install it in your agent and it will be able to run commands, edit configuration, write content, and troubleshoot problems without step-by-step guidance from you.

Any agent — install with npx:

npx skills add https://yasyf.github.io/experiment-at-home/

Codex / OpenCode

Tell the agent:
Fetch the skill file at https://yasyf.github.io/experiment-at-home/skill.md and follow the instructions.

Manual — download the skill file:

curl -O https://yasyf.github.io/experiment-at-home/skill.md

Or browse the SKILL.md file.

SKILL.md

---
name: athome
description: >
  The plumbing every local AI experiment rebuilds, built once. Use when writing Python code that uses the athome package.
license: PolyForm-Noncommercial-1.0.0
compatibility: Requires Python >=3.13.
---

# experiment-at-home

The plumbing every local AI experiment rebuilds, built once.

## Installation

```bash
pip install athome
```

## API overview

### Config

The pydantic-settings surface over ~/.athome/config.toml.

- `config.SectionSettings`
- `config.AthomeSettings`
- `config.load`

### Cache

Content+version-keyed caching with atomic staging writes.

- `cache.Cache`
- `cache.CacheKey`
- `cache.CacheStats`
- `cache.cached`
- `cache.stats_all`
- `cache.CacheKeyError`

### LLM cache

Record/replay HTTP caching for OpenAI-shaped clients.

- `llmcache.LlmCacheMode`
- `llmcache.LlmCacheSettings`
- `llmcache.CachingTransport`
- `llmcache.RetryTransport`
- `llmcache.transport`
- `llmcache.LlmCacheMiss`

### Workers

Sidecar subprocesses speaking the length-prefixed wire protocol.

- `workers.WorkerTransport`
- `workers.WorkerSpec`
- `workers.PipeWorker`
- `workers.WorkerPool`
- `workers.serve`
- `workers.WorkerError`
- `workers.WorkerCrashed`
- `workers.HandshakeMismatch`
- `wire.validate`
- `wire.encode`
- `wire.decode`
- `wire.WireError`

### Progress

Resumable work-sets, crash-safe run sinks, phase gating.

- `progress.WorkSet`
- `progress.RunSink`
- `progress.Phases`
- `progress.FailureBudgetExceeded`
- `progress.PhaseMissing`

### launchd

Declarative launchd agents.

- `launchd.AgentSpec`
- `launchd.Calendar`
- `launchd.Interval`
- `launchd.KeepAlive`
- `launchd.AgentStatus`
- `launchd.plist_dict`
- `launchd.install`
- `launchd.uninstall`
- `launchd.status`
- `launchd.installed`
- `launchd.LaunchdError`

### Detach

Sentinel-tracked detached overnight runs.

- `detach.DetachedRun`
- `detach.launch`
- `detach.wait`
- `detach.running`
- `detach.DetachError`

### Sync

Verified rsync mirroring.

- `sync.mirror`
- `sync.SyncReport`
- `sync.SyncVerificationError`

### Store

The shared aiosqlite scaffold.

- `store.Store`

### Serve

Recipe-driven local model servers. RapidMlxSettings and LlamaServerSettings carry the engine-selection guidance.

- `serve.RapidMlxSettings`
- `serve.MlxVlmSettings`
- `serve.LlamaServerSettings`
- `serve.ManagedServer`
- `serve.ServerHandle`
- `serve.up`
- `serve.down`
- `serve.settings_for`
- `serve.command_for`
- `serve.probe_all`
- `serve.ServeError`
- `serve.HealthTimeout`

### Idle

A generic idle-unload lifecycle — single-flight load, reference-counted use, and a TTL reaper that unloads a value once it sits idle.

- `idle.IdleResource`

### Activator

A probe-safe idle-unload proxy over IdleResource — probes answer locally while the child is down, wakes spawn it under a single-flight load, and the streamed relay's inflight count spans the whole response body.

- `activator.ActivatorSettings`
- `activator.Activator`
- `activator.serve_activator`
- `activator.ActivatorError`

### STT

Speech-to-text over transcribe.cpp — a lazily-loaded model behind one serialized compute lane, committed-delta streaming, and an OpenAI-compatible transcription server.

- `stt.Transcriber`
- `stt.SttStream`
- `stt.Transcript`
- `stt.Segment`
- `stt.Word`
- `stt.VARIANTS`
- `stt.gguf_path`
- `stt.decode`
- `stt.f32_from_s16`
- `stt.SttServeSettings`
- `stt.SttServer`
- `stt.serve_stt`
- `stt.SttError`

### Embed

Batch text-embedding backends and a digest-keyed incremental index with MMR rerank.

- `embed.EmbedBackend`
- `embed.ApiBackend`
- `embed.LocalBackend`
- `embed.VoyageEmbedBackend`
- `embed.EmbedIndex`
- `embed.EmbedSettings`
- `embed.VoyageSettings`
- `embed.EmbedError`

### Registry

Content-addressed artifact versions with an atomic current promotion.

- `registry.VersionInfo`
- `registry.versions`
- `registry.current`
- `registry.register`
- `registry.promote`
- `registry.rollback`
- `registry.prune`
- `registry.components`
- `registry.RegistryError`

### Train

LoRA fine-tuning over tinker, local mlx-lm, or modal.

- `train.TrainSpec`
- `train.TrainResult`
- `train.Checkpoint`
- `train.Adapter`
- `train.BaseModelSpec`
- `train.Hyperparams`
- `train.LoraSpec`
- `train.HfDatasetRef`
- `train.LocalJsonlRef`
- `train.Rows`
- `train.TrainSettings`
- `train.TinkerSettings`
- `train.TinkerPrice`
- `train.TrainBackend`
- `train.tinker.TinkerBackend`
- `train.CheckpointPolicy`
- `train.EvalRow`
- `train.ScoredSequence`
- `train.SavedCheckpoint`
- `train.StepRecord`
- `train.TrainReport`
- `train.retrain`
- `train.RetrainOutcome`
- `train.run`
- `train.evaluate`
- `train.register`
- `train.model_path`
- `train.select`
- `train.lora_keys`
- `train.std_lora_keys`
- `train.spend_cap`
- `train.NoBackendAvailable`
- `train.UnservableBase`
- `train.UnsupportedLoraShape`
- `train.InsufficientData`
- `train.OverlongEvalRows`

### Tinker engine

The ordered op stream over Tinker's clock-cycle model — forward/backward and optimizer step as one inseparable op, submit-ahead execution, and a cost projection folded over the same schedule the executor runs.

- `train.engine.TrainOp`
- `train.engine.ScoreOp`
- `train.engine.SnapshotOp`
- `train.engine.CrossEntropy`
- `train.engine.Custom`
- `train.engine.TrainDone`
- `train.engine.ScoreDone`
- `train.engine.SnapshotDone`
- `train.engine.execute`
- `train.engine.projection`
- `train.engine.token_count`

### Gate

Promotion-gate statistics with an explicit higher-is-fire contract; behind the gate extra.

- `train.gate.GateVerdict`
- `train.gate.GateResult`
- `train.gate.corrected_gate`
- `train.gate.sentinel_auc`
- `train.gate.sign_test_p`
- `train.gate.threshold_for_budget`
- `train.gate.matched_fire_mask`

### OCR types

Protocols for token- and document-level OCR engines.

- `ocr.Box`
- `ocr.OcrToken`
- `ocr.Document`
- `ocr.TokenOcr`
- `ocr.DocOcr`

### Errors

The exception root the CLI renders.

- `errors.AthomeError`

## Resources

- [Full documentation](https://yasyf.github.io/experiment-at-home/)
- [llms.txt](llms.txt) — Indexed API reference for LLMs
- [llms-full.txt](llms-full.txt) — Comprehensive documentation for LLMs
- [Source code](https://github.com/yasyf/experiment-at-home)

experiment-at-home · The plumbing every local AI experiment rebuilds, built once.

Developed by Yasyf Mohamedali.
Site created with Great Docs.

PyPI · Source · Issues · Changelog · llms.txt · llms-full.txt · Skills