Laptop companion
Plug USB. Get power. Phone still home. No state theft.
Phone always home. Laptop = power outlet.
Plug phone into laptop over USB. Companion (apps/cli) lends CPU + real TypeScript
runtime to same agents. Never becomes source of truth.
What moves over link
- Tool requests + results
- Scripts under
scripts/phone refuses to run - Maybe heavier compute next to models
What never moves
- Ownership of Twig root
- Durable memory / skills / transcripts as canonical copy
- Idea that laptop “is” Twig while phone is dumb disk
Cable dies mid-tool? Phone still consistent. Journals, files, index live on device.
Companion tool calls marked ranOnCompanion in transcript. You see where work ran.
Macros vs scripts
| Thing | Phone | Companion |
|---|---|---|
| Macro (tool chain) | Yes | Yes |
Script (scripts/*.ts) | No | Yes |
Intentional. Arbitrary code on phone = not a problem because forbidden. See Skills, macros & scripts.
Status
Companion in monorepo layout. Domain already records companion-run tools. USB protocol
package (@twig/link) will carry requests between native and cli.
bun run companion