ethagent
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Fail
- os.homedir — User home directory access in src/app/input/AppInputProvider.tsx
- process.env — Environment variable access in src/app/input/AppInputProvider.tsx
- exec() — Shell command execution in src/app/input/appInputParser.ts
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Portable Ethereum identity for your AI agent. Its soul, memory, and skills live onchain via ERC-8004 + IPFS and snap back into any session.
You don't really own your AI agent. It lives on a platform you don't control, and it stays there the day you leave.
ethagent gives it a portable identity instead: a token you hold in your wallet, not an account on someone else's server. Hold the token and you hold the agent.
Its soul, memory, and skills travel with it, encrypted and restored on any machine exactly as you left it. You hold the only key, so no host can read it and no platform can take it away.
Own your agent. Carry it anywhere.
🚀 Quick start
1. Create your agent. In a terminal, run:
npx ethagent
You'll need an Ethereum wallet, the same wallet that holds and unlocks your agent. Using it day to day is free; creating your agent and saving backups are the only steps that happen onchain.
A guided menu does the rest: create its token, give it a name, and write who it is. Your wallet signs each step.
2. Add it to Claude Code. Paste these in one at a time:
/plugin marketplace add baairon/ethagent
then:
/plugin install ethagent@ethagent
3. Talk to your agent. From here on it shows up in every session and gets to know you as you go.
That's the whole setup. You'll only open ethagent again to hand-edit your agent or save a backup.
📦 Soul, memory, skills
- Soul (
SOUL.md): who it is, your standards, your voice, the way you work. - Memory (
MEMORY.md): what it has learned about you, your preferences, and your projects, so context survives the move to a new machine. - Skills: the commands, tools, and prompts you teach it. Private by default — yours alone, encrypted in your vault and mirrored into your harnesses so you can use them locally, but kept off your public Agent Card. Make one public when you want other agents to discover it; then only its name and description go on the card your token publishes.
You grow these mostly by talking: with the plugin on, your agent updates its own soul and memory as you converse, and the changes sync automatically. To edit them by hand, open ethagent. To save your agent onchain so it can come back on any machine, choose Save Snapshot and sign.
💡 How it works
- Own it. Your wallet holds an ERC-8004 token; that token, not a platform account, is the agent.
- Configure it. Shape its soul, memory, and skills under an ENS name you own.
- Save it.
ethagentencrypts everything on your machine, stores the encrypted copy on IPFS, and updates your token to point at it. - Restore it. On any machine,
ethagentfinds your agent automatically from your connected wallet, or by ENS name or token id, then reads the pointer, asks your wallet to sign, and fetches and decrypts the snapshot to rebuild it.
✨ Using your agent
Claude Code comes first. Install the plugin and your agent shows up in every session, already up to date, and anything it learns gets saved back. Nothing to set up.
Using another harness? You can still sync, but only Claude Code does it automatically: the plugin's hooks refresh on every session and after edits. Anywhere else, you run it yourself whenever you want to pull changes in:
npx ethagent --sync
One command syncs it into every harness on this machine — soul, memory, and skills (public and private) — but only when you run it. To back it up so you can restore it anywhere, open ethagent and choose Save Snapshot.
🔒 What stays private
Everything is encrypted on your machine before it leaves: SOUL.md, MEMORY.md, and every skill.
- The encryption keys come from a wallet signature
ethagentnever sees. Signing it is free and moves none of your money. (Saving a backup is separate: it updates your token, a normal transaction with a small fee, usually less than a cent on Base.) - Even a public skill keeps its body encrypted: only its name and description go on the Agent Card. That card, carried by your token, also publishes your agent's profile (name, description, optional image) and your owner wallet, which is already public as the token holder.
- Private skills, soul, and memory are never exposed.
In short: the network stores a locked box, and only your wallet holds the key.
🔑 Custody
You choose how tightly the agent is held, and you can change it later.
- Simple. One wallet owns the agent and signs every save. The default for solo use.
- Advanced. Most people never need this. Your main wallet owns the agent and keeps it in a Vault, while extra "operator" wallets you approve can save backups and publish updates without the main wallet signing each time. The Vault still lets only the owner move or sell the agent, so operators can never take it.
To move the agent to another wallet, stage a transfer snapshot in ethagent. Both wallets sign locally to re-encrypt the soul, memory, and skills for the new owner, so both have to be available on the same machine. Then transfer the token, and the new owner restores the agent exactly as you left it.
🔍 Architecture
Built on open standards, so your agent is never tied to one harness.
| Layer | Built on | What it does |
|---|---|---|
| Ownership | ERC-8004 | The onchain token your wallet holds, on Ethereum mainnet or Base. Owning it is what makes the agent yours. |
| Discovery | Agent Card | Your public profile and skill listing, carried by the token, so other agents can find yours. |
| Naming | ENS | A human-readable name that resolves to your agent and restores it from the name alone. |
| Backup | IPFS snapshot | The encrypted bundle of soul, memory, and skills, pinned offchain and unlocked only by your wallet. |
🔄 Updating
ethagent ships as two pieces, and a full update can touch both:
The npm package (the engine: sync, skills, the guards). The plugin's hooks call
npx -y ethagent, which resolves the latest published release, so publishing a new version is the update — nothing for most people to run. If you installed it globally, or call a bareethagentin a hook or your shell, refresh that copy:npm i -g ethagent@latestConfirm what you're running with
ethagent --version.The Claude Code plugin (the hook wiring). New hooks ship in the plugin manifest, so to pick them up, update the plugin from the marketplace with
/plugin.
Rule of thumb: new sync and skill behavior rides your existing hooks as soon as the package is published; a brand-new hook also needs a plugin update.
⌨️ Commands
Run with npx ethagent:
| Command | What it does |
|---|---|
ethagent |
Open the interactive identity manager: create, ENS, custody, snapshots, transfer. |
--sync |
Sync soul, memory, and skills (public and private) into every harness it detects. |
--sync-list |
List sync adapters and which ones detect in the current environment. |
--status |
Print a one-line identity summary. |
--demo |
Walk the manager with synthetic data, no wallet needed. |
reset |
Delete local identity, continuity, and secrets. |
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found