terminal-native · uniswap v4 · axl mesh

An LP copilot that
shows its work.

Open, rebalance, and monitor Uniswap v4 positions in plain English. Four agents debate every move, you see the reasoning before the wallet signs.

$ npm i -g zuno

~/zuno-wallet · operator
$ recommend rebalance pos_4f2a3b
scoutranging · 110bps · 14gwei · in range
strategist3 candidates · lean tighter
criticreject A: 18h buffer, vol mean-reverts
strategistA': ±2.6% · 28h buffer · $3.60/d
criticaccept A' · converged
positionUSDC / ETH 0.05%
range1,820.40 → 2,040.10out of range
current2,073.62
recommended1,940 → 2,210widen + shift
rejected1,995 → 2,150too tight at 2× vol
reason28h buffer · survives 2× vol
decided bycritic · debate converged
signerzuno wallet · turnkey
verdictapprove_with_caution·conf0.82·approvalhuman
$
live debate · awaiting human approval

Three things, one shell.

Open positions, rebalance them, and watch them - without leaving your terminal. Each surface is one intent away.

01

Create

open a new position

Type the goal in plain English. Scout surveys live v4 pools on the chain, the agents debate width and pool, and Zuno prepares the mint.

$create a position with 0.05 ETH passively
02

Rebalance

review an existing one

Same four agents, applied to a position you already hold. The transcript is persisted with the plan so you can replay the reasoning later.

$recommend what I should do with this position
03

Monitor

background watcher

Polls your positions on a schedule. Out-of-range or near-boundary conditions ping you on Telegram and land in `~/.zuno/alerts.json`.

$show alerts

Four agents. One debate.

Each agent is its own process with its own AXL peer id. Numbers come from deterministic helpers; the LLM only owns reasoning. The transcript ships with the plan.

01

Scout

observes

Reads the position (or surveys live pools, for a new one). Loads volatility, gas, and yield. Labels the market regime in plain English.

02

Strategist

proposes

Drafts 2-5 candidate ranges. Picks proportions only - tick math is snapped deterministically so the LLM never fabricates numbers.

03

Critic

challenges

Stress-tests every candidate at 1×, 2×, 3× volatility. Vetoes weak ranges with concrete reasons. Asks the strategist to revise.

04

Arbiter

decides

Only joins on deadlock. Reads the full debate, picks one candidate, writes the rationale the user reads in `explain recommendation`.

A small mesh, not a monolith.

Each agent runs as its own process and talks through AXL- Gensyn's peer-to-peer Agent eXchange Layer. They reach each other by ed25519 peer id. No central broker.

flow_startcontext_observedproposal ⇄ critiquedeadlockcliyouscoutreads regimestrategistproposescriticchallengesarbiterresolvesevery arrow rides the axl mesh · plan_ready returns to cli on accept or after arbiter resolves
transport
axl /send · /recv
topology
peer mesh, 5 nodes
addressing
ed25519 peer id
determinism
tick math in ts
signer
turnkey policy
fallback
in-process

Why this beats a single-shot copilot.

  1. A debate models the real LP tradeoff, fee density vs survival, instead of picking one side and asking you to trust it.
  2. LLMs reason; deterministic code computes. The model picks shapes (width, offset, exposure), never raw ticks, amounts, or addresses. The Critic re-verifies every number before a plan ships.
  3. Every line of reasoning is auditable. The full transcript ships with the plan; `explain recommendation` replays it on demand.
  4. Your wallet stays separate. Zuno signs only after explicit approval, through a Turnkey-backed agent wallet you control.