learningequality / learningequality/ricecooker
`remote/config.py` — resolve host profile and per-chef sync settings
Open
@rtibblesbot is already working on this.
Since Jul 24, 2026.
TAG: new feature
- Dominant language
- Python
- Stars
- 31
- Forks
- 77
- Avg merge
- 5d 4h
- Merged PRs (30d)
- 3
Description
❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.
Overview
A config.py module in ricecooker/utils/remote/ that resolves which box a run targets and the per-chef sync settings, from two TOML layers. It is the foundation the rest of the --remote feature builds on. No network or subprocess.
Complexity: Low
Target branch: main
Context
- Global, one per laptop:
~/.config/ricecooker/remote.toml— host profiles (ssh,remote_root) and a top-leveldefault. - Per-chef, in the chef dir:
.ricecooker-remote.toml—name,protect,exclude. ssh = "<alias>"is any ssh destination or~/.ssh/configHost alias.
The Change
- Load both layers and expose a resolved profile: ssh destination,
remote_root, and the per-chefname/protect/exclude. namedefaults to the local dir basename when the per-chef file is absent or omits it.- Host resolution order:
--remote=<name>> globaldefault. - The per-chef file selects no host — only sync settings.
Out of Scope
- Any
ssh/rsync/tmuxexecution (that'stransport.py). - venv/environment fields and box-owned env (consumed by
driver.py). - ssh connection details (ports, keys, jump hosts) — delegated to
~/.ssh/config.
Acceptance Criteria
- Global profiles parse:
ssh,remote_root, top-leveldefault. - Per-chef file parses
name,protect,exclude. -
namedefaults to the local dir basename when unset. - Host resolves
--remote=<name>first, else globaldefault. - No profile configured raises a
remote:-prefixed error carrying a paste-ready config example. - An unknown
--remote=<name>raises aremote:-prefixed error naming the missing profile. - Resolution order is covered by tests over tmpdir TOML files.
AI usage
Claude (Claude Code) drafted this from the design spec; I directed the design and reviewed it.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.