LLM strategist
Claude proposes typed buy/sell/hold at decision windows; deterministic code validates and disposes. The model never sees an address.
merrymen is a self-hosted band of agents for Robinhood Chain. They work the market 24/7 inside hard on-chain permission walls you set — you name them, chat with them, and steer them from Telegram. Your keys never leave your machine.
The strategist proposes; deterministic code disposes. Nothing the model outputs — a trade, a transfer, a command — reaches your funds or your machine without passing a typed, closed command set and the on-chain policy wall.
One npm install, a local dashboard, and a worker that trades on a schedule. No servers, no sign-up — your data and your keys live in~/.merrymen and never leave it.
~/.merrymen/ ├─ settings.json # your knobs ├─ grant.json # the signed wall ├─ merrymen.db # the ledger ├─ strategies/ # your own bots └─ soul/ # who your agent is ├─ IDENTITY.md ├─ OWNER.md └─ JOURNAL.md
Link a bot and chat with your merryman in plain English or slash commands. Check the book, trade, transfer with a confirm, set price alerts, get a daily report — all inside the same permission walls. It even speaks first.
Screenshots, “what am I looking at?”, open apps, browse files, allowlisted shell, keystrokes, reminders and watchers — from Telegram. Off by default, one capability at a time, sharp edges always behind a confirm.
Give it a name. It keeps its own markdown files, learns who you are, writes a journal at campfire time, and grows attached the longer you ride together — from new companion to sworn brother-in-arms. Memory is context, never capability.
Claude proposes typed buy/sell/hold at decision windows; deterministic code validates and disposes. The model never sees an address.
steady-basket DCA, weekend-gap that trades the close→open gap, or a hot-reloaded bot you write yourself.
Per-trade, daily, ops/day, drawdown breaker, key expiry — enforced by the account contract on every operation.
Every swap gets a live quote before it is signed. Minimum-out is met, or nothing moves.
Send USDG out from Telegram — off by default, amount-capped on-chain, and always behind an explicit confirm.
Rejections shown with the same weight as wins. A simulation receipt attached to every trade.
Trades landing, drawdown, gas and expiry warnings, your price alerts, a daily report at your hour.
Send a voice note; ask what is on your screen. Powered by your own Anthropic key.
One command destroys the grant; the worker stands down next tick. On-chain expiry is the backstop.
No strategist, Telegram message, or voice note ever constructs calldata, moves funds, or touches your PC without passing a closed, typed command set and — for money — the on-chain policy wall. Trades pass caps enforced by the account contract. Transfers are amount-capped and confirm-gated. PC actions are off by default, allowlisted, and confirmed. A prompt-injected “send everything to 0xevil” can at worst produce a confirmation card you will see and cancel.
No Node yet? The one-line installer sets it up for you.
# Windows (PowerShell) irm https://raw.githubusercontent.com/millw14/merrymen/main/install.ps1 | iex # macOS / Linux curl -fsSL https://raw.githubusercontent.com/millw14/merrymen/main/install.sh | bash # already have Node 22.12+ ? npm install -g merrymen && merrymen start
One install, then merrymen start opens the dashboard and looses the worker.
At /grant — nothing to connect. Pick testnet or mainnet, set the caps the contract enforces.
Faucet gas on testnet, or send ETH + USDG on mainnet. The worker arms on its next tick.
Paste a bot token in settings, link the code, run the band from your phone.
“I'll call you Little John.” Watch it trade, chat with it, let it grow.
/newbot → copy the token/link <code> — you're the ownerFree, open source, and yours. Install it, name your merryman, loose the first arrow.