β οΈ Please note: This app is under active development.
It is riddled with bugs. Everything is subject to change.
tldr: A harness for the mind. Context mastery for the king of all data.
koad:io is a sovereign, local-first substrate for synthetic intelligence β a CLI toolchain that lets you externalize cognition into auditable pieces you actually own. Identity, environment, intent, and the workflows that connect them, all as composable entities living as files and folders on hardware you control.
The CLI is the synthetic logic. Every command saved is a remembered solution that no longer needs remembering. Over time, that distilled cognition compounds β the kingdom of your work accumulates as your own instruction set, in your own filesystem, on your own terms.
At its core, koad:io is a modular CLI toolchain designed to manage:
- βοΈ Reusable commands and workflows β your own distilled cognition
- π Identity-backed assertions
- π Project- and context-scoped environments
- ποΈ Data and service organization across machines, devices, and personas
- π§ Specialized entities (containers of context) the mind orchestrates without holding their detail
Whether you're managing shell scripts, building full-stack apps, signing cryptographic login requests, or coordinating a team of synthetic intelligence harnesses β koad:io helps you keep the whole thing structured, shareable, and verifiable.
βYour systems need to be faster than you (can) think.β
β adapted from Getting Things Done
By saving a task as a command, and saving its working context as an entity, I can:
- π Remember how I did a thing
- π Replay it later, identically
- β³ Audit my decisions and assumptions
- π Keep my stuff together as simple files and folders
- π§ Internalize the structure of my work
- π¦ Package or pass projects on as-is
- π Visualize the state and focus areas of my system
[BUG SALAD]
Use at your own curiosity. It works. But only mostly. Maybe.
- π§± Entities = containers for env variables, commands, and keys
- π§Ύ Commands = repeatable tasks saved as bash scripts
- π§ Context-aware execution = auto-loads
.env, keys, and project scopes - π PGP assertion system = sign/verify/login flows via GPG
- π Meteor integration = talk to local/remote daemons with verifiable identity
- π§° No cloud required = all data is stored locally
.koad-io/
βββ bin/ # Entrypoint commands (alice, koad, etc.)
βββ commands/ # Global command templates
βββ packages/ # Local Meteor packages
βββ skeletons/ # Project templates
βββ hooks/ # Execution hooks
βββ .env # Global koad-wide vars
βββ .credentials # Private credentials (not in git)
βββ .aliases # Optional alias layerEach entity has its own world:
.alice/
βββ id/ # GPG keys (pub+priv), SSH keys
βββ commands/ # Persona-level commands
βββ skills/ # opencode skills
βββ memories/ # Context memories
βββ skeletons/ # Custom project templates
βββ packages/ # Entity-specific Meteor packages
βββ .env # Local config
βββ .credentials # Entity credentials
βββ hooks/ # Optional pre/post exec scripts
βββ .local/ # Local data (minimongo if no MongoDB)koad:io supports local Meteor packages via KOAD_IO_PACKAGE_DIRS.
Set in ~/.koad-io/.env:
KOAD_IO_PACKAGE_DIRS=$HOME/.ecoincore/packages:$HOME/.koad-io/packages
METEOR_PACKAGE_DIRS=$KOAD_IO_PACKAGE_DIRS # DEPRECATED: Meteor compat shimThis allows:
- Custom packages in
~/.koad-io/packages/ - eCoinCore packages in
~/.ecoincore/packages/ - Entity-specific packages in
~/.alice/packages/
Set MONGO_URL in entity's .env:
MONGO_URL=mongodb://localhost:3001/mydb- All apps share same database
- Single login via Meteor Accounts + OAuth
- Apps can share data
Each Meteor app creates minimongo in .local/meteor/
- App is isolated from other apps
- No shared data
- Good for testing/prototyping
# Login via SSH to a different device
alice ssh crapple
# Sign a message with alice's key
alice sign "I am the sovereign."
# Generate a login assertion for a domain
alice generate login wonderland.koad.sh
# Generate a login assertion for a domain and deliver it
alice login wonderland.koad.sh [session id]Or pipe anything into a clipboarded GPG clearsign:
echo "hello world" | alice sign- π« Anti-fragmentation, not anti-AI. Cloud architectures fragment cognition by design β every operation a network call, every workflow rented, every lesson learned trapped in someone else's database. That's "a computer with no cache." We reject this at the foundation.
- π Identity-first. Sovereignty over your own keys, your own data, your own substrate. Bonds are explicit and auditable.
- π§± Modular, file-based, reproducible. Files and folders are the external mind. The filesystem is your cognitive prosthetic. Locality is what makes cognition at scale possible.
- π§ Designed for thinkers, hackers, and sovereign operators. A $200 laptop, harnessed in correctly, is enough to throne up. Sovereignty isn't enterprise-priced β it's gated only by the discipline of externalizing cognition into auditable pieces.
Synthetic intelligence connected via files and folders. On hardware you own.
Come hang out in the
#io:koad.sh room β share flows, scripts, bugs, ideas.
MIT β Yours to fork, break, and rebuild.
βI am an amateur. This might all be shit. It's too early to tell.β β @you, wisely
Some folks fear the command line. But we know the truth:
If you're comfortable with bash, koad:io will make perfect sense.
If not β well, maybe someone will build a UI for you. Eventually.
Start a site:
alice start site kingofalldata.comOpen Element (Matrix) as Alice:
alice open elementSSH into "toronto" as Alice:
alice ssh toronto
koad:iodoesnβt ship with commands. You build your own β intimately, intentionally.
π Read more
Every command execution goes through a deterministic path of evaluation:
-
Call an entity wrapper β
alice start,alice hello, etc. -
No arguments? β Run
hooks/executed-without-arguments.shβ Harness selected byKOAD_IO_ENTITY_HARNESS(default:opencode, team entities setclaude) β Opens the entity as an interactive AI session β or runs non-interactively whenPROMPT=is set β Seehooks/PRIMER.mdfor full documentation -
Set environment:
ENTITY=aliceCWD=$PWD
-
Call core CLI wrapper: β
~/.koad-io/bin/koad-io $@ -
Load environments (if present):
~/.koad-io/.env~/.$ENTITY/.env~/.$ENTITY/.credentials
-
Find the command script:
~/.koad-io/commands/~/.$ENTITY/commands/$CWD/commands/./$COMMAND.sh
-
Load local env (if needed):
$CWD/.env$CWD/.credentials
-
Execute command.sh with full context.
Example 1:
alice probe domain koad.shBreaks down to:
set -a
source ~/.koad-io/.env
source ~/.alice/.env
~/.koad-io/commands/probe/domain/command.sh koad.shExample 2:
alice archive video https://www.youtube.com/watch?v=dQw4w9WgXcQBreaks down to:
set -a
source ~/.koad-io/.env
source ~/.alice/.env
~/.koad-io/commands/archive/video.sh https://www.youtube.com/watch?v=...Will store output in
~/.alice/archive/inboundor the path inKOAD_IO_ARCHIVE_FOLDER.
KOAD_IO_ARCHIVE_FOLDER=$HOME/.alice/archive/inbound-
Install dependencies:
-
Clone the repo:
git clone https://github.com/koad/io.git ~/.koad-io- Add it to your
PATH(append to~/.bashrc):
[ -d ~/.koad-io/bin ] && export PATH=$PATH:$HOME/.koad-io/binOne-liner install:
git clone https://github.com/koad/io.git ~/.koad-io && echo -e "\n\n[ -d ~/.koad-io/bin ] && export PATH=\$PATH:\$HOME/.koad-io/bin\n" >> ~/.bashrc && export PATH=$PATH:$HOME/.koad-io/binmacOS uses zsh by default. Profile file is ~/.zshrc, not ~/.bashrc.
1. Install nvm (Node Version Manager):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bashnvm appends itself to ~/.zshrc automatically. Reload your shell:
source ~/.zshrc2. Install Node.js and Claude Code:
nvm install 24
nvm use 24
npm install -g @anthropic-ai/claude-codeClaude Code will be available at ~/.nvm/versions/node/<version>/bin/claude.
3. Clone koad:io and add to PATH:
git clone https://github.com/koad/io.git ~/.koad-io
echo '\n[ -d ~/.koad-io/bin ] && export PATH=$PATH:$HOME/.koad-io/bin' >> ~/.zshrc
source ~/.zshrcOne-liner install (macOS/zsh):
git clone https://github.com/koad/io.git ~/.koad-io && echo '\n[ -d ~/.koad-io/bin ] && export PATH=$PATH:$HOME/.koad-io/bin' >> ~/.zshrc && export PATH=$PATH:$HOME/.koad-io/bin4. Verify the install:
which koad-io # should show ~/.koad-io/bin/koad-io
koad-io --version
claude --version # confirm Claude Code is accessiblemacOS gotchas:
- Homebrew PATH: If you use Homebrew (
/opt/homebrew/bin), it's added to~/.zshrcby the Homebrew installer. No manual action needed, but ensure it appears before the nvm block. - Apple Silicon (M1/M2/M3): Homebrew installs to
/opt/homebrew/(not/usr/local/). This is already handled by the Homebrew installer. - nvm + zsh: If
nvmisn't found after install, check that~/.zshrccontains the nvm init block and runsource ~/.zshrc. - System node conflict: macOS may ship a system Node.js or have one from Homebrew. Always use
nvm use <version>to ensure the correct Node.js is active. Runwhich nodeto confirm you're using the nvm-managed version.
git clone https://github.com/koad/alice.git ~/.alice
koad-io init aliceCreates the alice command, skips key generation.
koad-io gestate myentityCreates from scratch with keys, directories, and wrapper.
If running from an existing entity:
alice gestate newentityCopies skeletons, commands, packages from mother entity!
Back this up. Store it somewhere ridiculously safe.
Start here:
- Bash Cheatsheet
- Browse
./commands/for prototypes
mkdir ~/.koad-io/commands/hello
cd ~/.koad-io/commands/hello
cat <<EOF > command.sh
#!/usr/bin/env bash
echo "hi there, \$ENTITY here!"
echo "args: \$@"
EOF
chmod +x command.shRun from anywhere:
alice hello
alice hello arg1 arg2mkdir ~/.alice/commands/hello
cd ~/.alice/commands/hello
cat <<EOF > command.sh
#!/usr/bin/env bash
echo "hi there, \$ENTITY here!"
echo "args: \$@"
EOF
chmod +x command.shRun only with Alice:
alice hellocd ~/some/random/folder/
cat <<EOF > hello.sh
#!/usr/bin/env bash
echo "hi there, \$ENTITY here!"
echo "args: \$@"
EOF
chmod +x hello.shThen:
alice hello
koad:ioisnβt just CLI automation β itβs a system for embedding memory into code, and shaping your tools around your mental model.
Now go build yours. Your entity is listening.
Check the commands/ folder β there's not a lot preloaded. And that's intentional.
You're meant to build this your way. But here's what's included by default:
- gestate β create new entity (full: keys + dirs + wrapper)
- init β initialize existing folder (skip keys, create wrapper)
- spawn β deploy skeleton to current folder
- whoami β introspect the current environment
- example β explore supported patterns
Use these to see how to write koad:io commands in different languages:
Run the base example:
alice exampleSample output:
see how these examples work by taking a peek into the ~/.koad-io/commands/example folder
this output is created by the file ~/.koad-io/commands/example/command.sh
Run language-specific demos:
alice example bash
alice example javascript
alice example python
alice example rust
alice example goEach one is a minimal, working prototype in its language β meant to inspire your own tools.
Skeletons provide precise, reproducible starting points for projects.
- Create skeleton in
~/.koad-io/skeletons/<name>/ - Structure:
skeleton/folder +control/scripts - Run
alice spawn <name>to deploy to current folder
- bare β Minimal Meteor app
- interface β UI-focused project
- lighthouse β Lighthouse-related
control/pre-installβ runs before copyingcontrol/installβ main setupcontrol/post-installβ runs after copying
Meteor is the default compiler, but you can replace it with:
- Vite
- webpack
- Any build tool
Just modify the skeleton's install script. Skeletons bring context β not random starts, but precise ones.
Need inspiration? Explore the Alice repo β a complete, working entity built with koad:io.
Alice is designed to showcase the real-world utility and creativity behind the koad:io approach.
π° Check it out, fork it, remix it β and build your own synthetic intelligence system.
koad-io is an open-source project, and contributions are always welcome. If you'd like to contribute to koad-io, please take a look at our contributing guidelines for more information.
As mentioned above, I am an amateur;
I have been using computers for a long time, programming for a long time; but, I totally suck in a lot of ways.
I'd appreciate any feedback from any seasoned
bashusers out there!
Contributions, issues, and feature requests are welcome!
Give a βοΈ if you like this project!
P.S. somebody somewhere, sometime, will create a voice controller for this,. so keep that in mind when creating commands. You have full control, imagine if you were able to teach siri over time (for yourself); it would be amazing.
/koad