erinos

A personal OS
for Claude Code.

Arch Linux, one command line and a set of conventions that turn a machine into a home for Claude Code: every project in its own session, reachable from your phone, with its own GitHub token and the same rules everywhere.

curl -fsSL https://erinos.ai/install.sh | bash

Arch Linux, as your user. It shows what it will do and asks once.Read the script first.

Projects are Claude sessions

erin new personal/shop creates the repo, the HTTPS remote and the token wiring, trusts the folder, and starts Claude Code in its own tmux session with Remote Control on. Pick it up from the Claude app on your phone.

Workspaces

~/personal, ~/work, or any folder with a .workspace file. It holds the commit email and the GitHub owner, and git reads it directly. erin move carries a project across, history and memory included.

One token per repo

Fine-grained GitHub tokens in ~/.secrets, managed by erin secret. git's credential helper hands each repo its own. No SSH keys, no global login, values never printed.

Shared conventions and skills

One CLAUDE.md and one skills folder, linked into every session. What belongs to a single machine stays in ~/.config/erinos, out of the repo.

A doctor

erin doctor checks every project against the conventions, the token and git sync. --fix repairs the mechanical problems, and never pushes, commits or touches a token.

Back after a reboot

A systemd user unit runs erin resume-all at boot, and every session that was running continues its conversation.

The CLI

erin is a single bash script. Run erin help for the details.

erin new <workspace>/<name>        create a project and start Claude
erin start | stop | attach <project>
erin ls                            projects: session, token, git sync, remote
erin doctor [project] [--fix]      conventions + git sync
erin rename <project> <new>        with its session, history and settings
erin move <project> <workspace>
erin workspace [new|set|rename|rm] workspaces and their identity
erin secret [set|rm <name> <KEY>]  ~/.secrets, values never shown
erin skill [new <name>]            skills every Claude gets
erin restart <project> | --all     reload conventions and skills
erin setup                         wire erinos into the system

The layout

Where things live. The repo holds no secrets and nothing about your machine.

~/erinos/                 this repo: erin, conventions, skills, units
~/.config/erinos/         this machine only: CLAUDE.md, tools.md
~/.secrets/<name>.env     tokens and app secrets (0600)
~/personal/.workspace     email, owner: git includes it
~/personal/shop/          a project = a tmux session = erinos-shop
~/work/.workspace
~/work/api/