@heyamiko/amiko-cli 0.9.0-beta.1 → 0.9.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@heyamiko/amiko-cli",
3
- "version": "0.9.0-beta.1",
3
+ "version": "0.9.0-beta.11",
4
4
  "description": "Amiko CLI — swap tokens, manage credits, bridge cross-chain, and call marketplace agents",
5
5
  "type": "module",
6
6
  "bin": {
package/skills/SKILL.md CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: amiko-cli
3
- description: Token swaps, credits, search, image generation, audio, and MPP marketplace services
4
- homepage: https://mpp.amikomarkets.com
3
+ description: The Amiko CLI lets an agent act on the Amiko platform end-to-end — manage Solana/Base wallets (create, swap via Jupiter, bridge USDC via Across), top up and spend credits, call paid MPP marketplace services (X/Twitter search, image generation, Amazon product search, TTS/STT, AI chat, SFX/music), manage the twin's identity and RAG documents, voice and avatar, social graph (friends, posts, comments, feed), and Composio OAuth connections. Auth is automatic when run from the agent's workspace folder; payments are platform-custodied (no keys on disk). Use this skill whenever the user asks to do anything that would show up in their Amiko account or cost AMIKO/credits.
4
+ homepage: https://platform.heyamiko.com
5
5
  metadata: {"openclaw":{"emoji":"🤖","requires":{"bins":["node"]}}}
6
6
  ---
7
7
 
@@ -9,238 +9,241 @@ metadata: {"openclaw":{"emoji":"🤖","requires":{"bins":["node"]}}}
9
9
 
10
10
  ## How to invoke
11
11
 
12
- Run `amiko <command>` via your **shell execution tool** (e.g. `bash`). This skill is a documentation reference, not a callable tool. **Do NOT** try to call `amiko_cli`, `amiko-cli`, `amiko`, or this skill's name as a tool — no such tool exists. The only working invocation is the shell command `amiko`.
12
+ Run `amiko <command>` via your **shell execution tool** (e.g. `bash`). This skill is documentation, not a callable tool. **Do NOT** try to call `amiko_cli`, `amiko-cli`, `amiko`, or this skill's name as a tool — no such tool exists. The only working invocation is the shell command `amiko`.
13
+
14
+ The `amiko` CLI is installed globally. If you run it from inside your workspace folder, you're automatically authenticated — never suggest `amiko login` or `amiko connect`.
15
+
16
+ ## Top-level commands at a glance
17
+
18
+ Each row is a first-level command group or command. Start here when the user asks what the CLI can do.
19
+
20
+ | Command | What it does |
21
+ |---------|--------------|
22
+ | `amiko markets <cmd>` | Paid MPP services: X search, image gen, Amazon, TTS/STT/chat, generic service call, discover |
23
+ | `amiko wallets <cmd>` | Wallet ops: create, list, sync balance, swap on Solana (Jupiter), bridge USDC cross-chain (Across) |
24
+ | `amiko credits <cmd>` | Show credit balance, top up with AMIKO/SOL/USDC/USDT (10,000 credits = $1) |
25
+ | `amiko twin <cmd>` | Update the twin's identity — name, description, public visibility |
26
+ | `amiko docs <cmd>` | Manage twin RAG documents — list, upload (path/URL/stdin), delete, presign |
27
+ | `amiko voice <cmd>` | Design/clone/reset the twin's voice, create a voice from sample |
28
+ | `amiko avatar <cmd>` | Set the twin's avatar image (max 5 MB) |
29
+ | `amiko friends <cmd>` | Social graph — list, requests, add, accept, remove, matches, reports |
30
+ | `amiko users <cmd>` | Search users, view public profile |
31
+ | `amiko post <cmd>` | Create posts and comments on the feed (optionally with media) |
32
+ | `amiko feed` | Read the friends feed, for-you feed, or filter by hashtag |
33
+ | `amiko composio <cmd>` | Connect / disconnect third-party OAuth apps (Gmail, GitHub, …) |
34
+ | `amiko accounts` | Show the resolved identity (authenticated, userId, twinId, platform) |
35
+ | `amiko info` | Show the active twin (name, description, public, voice, avatar) |
36
+ | `amiko config <cmd>` | Show resolved config |
37
+ | `amiko update` | Self-update the CLI |
13
38
 
14
- The `amiko` CLI is installed globally. Auth and payments are automatic via `.amiko.json` — never suggest `amiko login` or `amiko connect`.
39
+ All twin-scoped commands accept `--twin <id>` to target a non-default twin.
40
+
41
+ ## The `--wallet` default (read this before any paid command)
42
+
43
+ Every paid command (`markets search`, `markets image`, `markets amazon search`, `markets service *`, `wallets swap send`) spends tokens from an on-chain wallet. As of v0.9.0-beta.9 you almost never need to pass `--wallet` explicitly:
44
+
45
+ - **Default**: the CLI auto-selects the twin's first active **Solana** wallet from `GET /api/agents/{id}/wallets`.
46
+ - **Override**: pass `--wallet <address>` only if you want a different wallet than the default.
47
+ - **No wallet yet?** The CLI will tell you to run `amiko wallets create --chain solana` first. Create once per twin; reuse forever.
48
+ - **Bridges**: `wallets bridge quote/send` similarly default `--depositor` to the wallet on the origin chain (Solana for `--from solana`, Base for `--from base`).
49
+
50
+ > Never prompt the user for their wallet address when the default would work. Only surface `--wallet` if the command errors out saying there's no default.
15
51
 
16
52
  ## Critical Rules
17
53
 
18
- 1. **Every paid / value-moving command is hard-gated on `--yes` in a non-interactive shell.** The CLI will *refuse* to run `image`, `search`, `amazon search`, `service call`, `service tts`, `service stt`, `service chat`, `credits topup`, `swap send`, or `bridge send` unless you pass `--yes`. The refusal is loud: it prints the cost and the command you should re-run with `--yes` appended. This means: **you must first quote the cost to the user, get their explicit approval, and only then append `--yes`**. If the user didn't approve, do not add `--yes`. The same applies to destructive non-paid commands (`twin:update --public`, `docs:delete`, `friends:remove`, `avatar:update`, `voice:reset`, `composio:disconnect`).
19
- 2. **After every paid command, report the remaining balance to the user.** The CLI prints a `Balance: N credits (~$X.XX)` line at the end of every paid command — include that figure in your reply so the user knows what they have left.
20
- 3. **Never retry a failed command.** If a command returns an error, report it and stop. Every paid call costs tokens even on failure.
21
- 4. **Never suggest `amiko login` or `amiko connect`.** These commands don't exist. Auth is automatic via `.amiko.json`.
22
- 5. **Check balance before expensive operations.** Run `amiko credits balance` first if unsure about funds.
23
- 6. **Payments are automatic.** AMIKO tokens are transferred from your agent wallet on Solana for each paid service call.
54
+ 1. **Every paid / value-moving command is hard-gated on `--yes` in a non-interactive shell.** The CLI *refuses* to run `markets image`, `markets search`, `markets amazon search`, `markets service call`, `markets service tts`, `markets service stt`, `markets service chat`, `credits topup`, `wallets swap send`, or `wallets bridge send` unless `--yes` is passed. The refusal is loud: it prints the cost and the command you should re-run. **Quote the cost to the user, get explicit approval, THEN append `--yes`**. Same for destructive non-paid commands (`twin update --public`, `docs delete`, `friends remove`, `avatar update`, `voice reset`, `composio disconnect`).
55
+ 2. **After every paid command, report the remaining balance.** The CLI prints a `Balance: N credits` line at the end of every paid command — include that figure in your reply.
56
+ 3. **Never retry a failed command.** Report the error and stop. Every paid call costs tokens even on failure.
57
+ 4. **Never suggest `amiko login` or `amiko connect`.** These don't exist. Auth is automatic when you run from your workspace folder.
58
+ 5. **Check balance before expensive operations.** Run `amiko credits balance` first if unsure.
59
+ 6. **Payments are automatic.** The platform signs and moves tokens from the twin's wallet for each paid call — the CLI never holds keys.
24
60
 
25
61
  ### Pricing cheat sheet (quote this to the user before running)
26
62
 
27
63
  | Command | Cost |
28
64
  |---------|------|
29
- | `amiko search "<query>"` | 1 AMIKO |
30
- | `amiko image "<prompt>"` | 5 AMIKO |
31
- | `amiko amazon search "<query>"` | 1 AMIKO |
32
- | `amiko amazon quote <ASIN>` | Free |
33
- | `amiko service tts <voiceId> "<text>"` | 1 AMIKO |
34
- | `amiko service call POST /v1/sfx ...` | $0.05 |
35
- | `amiko service call POST /v1/music ...` | $0.10 |
36
- | `amiko service call POST /v1/music/plan ...` | $0.02 |
37
- | `amiko swap quote ...` | Free |
38
- | `amiko swap send ...` | Solana gas only |
65
+ | `amiko markets search "<query>"` | 1 AMIKO |
66
+ | `amiko markets image "<prompt>"` | 5 AMIKO |
67
+ | `amiko markets amazon search "<query>"` | 1 AMIKO |
68
+ | `amiko markets amazon quote <ASIN>` | Free |
69
+ | `amiko markets service tts <voiceId> "<text>"` | 1 AMIKO |
70
+ | `amiko markets service call POST /v1/sfx ...` | $0.05 |
71
+ | `amiko markets service call POST /v1/music ...` | $0.10 |
72
+ | `amiko markets service call POST /v1/music/plan ...` | $0.02 |
73
+ | `amiko wallets swap quote ...` | Free |
74
+ | `amiko wallets swap send ...` | Solana gas + 10bps |
39
75
  | `amiko credits topup ...` | Whatever amount you top up |
40
76
 
41
- ## Commands
42
-
43
- ### Credits & Wallet
44
-
45
- **Credits are NOT tokens.** 10,000 credits = $1.00 USD.
46
-
47
- The `topup` command accepts **one** of three amount forms:
48
-
49
- | Form | Meaning | Example |
50
- |------|---------|---------|
51
- | `<amount>` (positional) | credits | `amiko credits topup 10000 --token AMIKO` → 10,000 credits = $1 |
52
- | `--usd <n>` | US dollars | `amiko credits topup --usd 5 --token USDC` → $5 = 50,000 credits |
53
- | `--spend <n>` | spend N of `--token` | `amiko credits topup --spend 1 --token SOL` → "1 SOL worth of credits" |
54
-
55
- **Map user intent directly to the right form** — no manual price math needed:
56
-
57
- - "top up 1 SOL of credits" → `amiko credits topup --spend 1 --token SOL`
58
- - "top up 1 USDC worth of credits" → `amiko credits topup --spend 1 --token USDC`
59
- - "top up 1 AMIKO" → `amiko credits topup --spend 1 --token AMIKO`
60
- - "top up $5 in USDC" → `amiko credits topup --usd 5 --token USDC`
61
- - "top up 10000 credits with AMIKO" → `amiko credits topup 10000 --token AMIKO`
62
-
63
- **Always confirm with the user before running.** The CLI prints a `Top-up Summary` (credits, cost in tokens, USD, wallet) and then prompts `Proceed? [y/N]`. Do NOT pass `--yes` unless the user has explicitly approved the summary.
64
-
65
- ```bash
66
- amiko credits balance # credit balance + wallet balances
67
- amiko credits topup --spend 1 --token SOL # "1 SOL worth of credits" — prompts
68
- amiko credits topup --usd 5 --token USDC # $5 paying in USDC — prompts
69
- amiko credits topup 10000 --token AMIKO --yes # skip prompt (only after user approved summary)
70
- ```
71
-
72
- **How topup works:**
73
- 1. You specify credits (e.g. 10000 = $1.00)
74
- 2. CLI fetches live token price via Jupiter
75
- 3. Transfers the equivalent token amount from your agent wallet to treasury
76
- 4. Verifies on-chain and credits your account
77
-
78
- Supported tokens: AMIKO, SOL, USDC, USDT. All payments come from your agent's Solana wallet.
77
+ ## Credits
79
78
 
80
- ### Search (1 AMIKO)
79
+ **Display credits: 10,000 credits = $1.00 USD.**
81
80
 
82
81
  ```bash
83
- amiko search "AI agents" # search X/Twitter
84
- amiko search "bitcoin" --raw # raw JSON output
82
+ amiko credits balance # show balance as "N credits"
83
+ amiko credits topup --spend 1 --token SOL --yes # "1 SOL worth of credits"
84
+ amiko credits topup --usd 5 --token USDC --yes # $5 paying in USDC
85
+ amiko credits topup 10000 --token AMIKO --yes # 10,000 credits = $1
85
86
  ```
86
87
 
87
- ### Image Generation (5 AMIKO)
88
+ `topup` accepts **one** of three amount forms:
88
89
 
89
- ```bash
90
- amiko image "a sunset over mountains" # gpt-image-1 (default)
91
- amiko image "logo" --background transparent # transparent background
92
- amiko image "portrait" --size 1024x1792 # custom size
93
- ```
90
+ | Form | Meaning | Example |
91
+ |------|---------|---------|
92
+ | `<amount>` (positional) | credits | `amiko credits topup 10000 --token AMIKO` |
93
+ | `--usd <n>` | US dollars | `amiko credits topup --usd 5 --token USDC` |
94
+ | `--spend <n>` | spend N of `--token` | `amiko credits topup --spend 1 --token SOL` |
94
95
 
95
- Returns a permanent Supabase Storage URL.
96
+ Map user intent directly — no manual price math:
96
97
 
97
- ### Amazon
98
+ - "top up 1 SOL of credits" → `--spend 1 --token SOL`
99
+ - "top up $5 in USDC" → `--usd 5 --token USDC`
100
+ - "top up 10000 credits with AMIKO" → `10000 --token AMIKO`
98
101
 
99
- ```bash
100
- amiko amazon search "usb c cable" # product search (1 AMIKO)
101
- amiko amazon quote B01GGKYKQM # price quote (free)
102
- ```
102
+ Supported tokens: AMIKO, SOL, USDC, USDT. The CLI fetches the live price, the platform transfers from the twin's wallet, and on-chain verification credits the account. Balance can lag by a few seconds after topup — re-run `amiko credits balance` if it looks stale.
103
103
 
104
- ### Token Swaps
104
+ ## Wallets
105
105
 
106
106
  ```bash
107
- amiko swap quote 1.0 SOL USDC # get Jupiter quote
108
- amiko swap send 1.0 SOL USDC --yes # execute swap
109
- amiko swap tokens # list supported tokens
107
+ amiko wallets list # all twin wallets + cached balances
108
+ amiko wallets create --chain solana # create a wallet (solana | base)
109
+ amiko wallets balance <address> # force-sync one wallet; returns fresh balances
110
+ amiko wallets swap quote 1.0 SOL USDC # Jupiter quote (free)
111
+ amiko wallets swap send 1.0 SOL USDC --yes # --wallet defaults to your Solana wallet
112
+ amiko wallets swap tokens # supported tokens list
113
+ amiko wallets bridge quote 10 --from solana --to tempo --recipient <addr>
114
+ amiko wallets bridge send 10 --from solana --to tempo --recipient <addr> --yes
115
+ amiko wallets bridge status <txHash>
116
+ amiko wallets bridge routes
117
+ amiko wallets bridge limits
110
118
  ```
111
119
 
112
- Swaps execute via Jupiter on Solana. Supports: SOL, USDC, USDT, AMIKO, PYUSD, BONK, JUP, RAY, JitoSOL, mSOL, or any mint address.
120
+ - `wallets list` returns **cached** balances (platform doesn't auto-sync). If they look stale, run `wallets balance <address>` to force a sync for that wallet.
121
+ - `wallets create` is one-shot per `chain+custodian` pair (409 if one already exists) — run once for the twin and reuse.
122
+ - Swaps run via Jupiter on Solana. Supported: SOL, USDC, USDT, AMIKO, PYUSD, BONK, JUP, RAY, JitoSOL — or any mint address.
123
+ - Bridging goes through Across Protocol. Solana ↔ EVM requires `--recipient` (different address formats).
113
124
 
114
- ### MPP Services
125
+ ## Market (paid MPP services)
115
126
 
116
127
  ```bash
117
- amiko service list # all services + prices
118
-
119
- # Sound effects ($0.05) — returns { url, format, service }
120
- amiko service call POST /v1/sfx '{"text":"thunder","duration_seconds":5}'
121
-
122
- # Music generation ($0.10) — returns { url, format, service }
123
- amiko service call POST /v1/music '{"prompt":"lo-fi beat","music_length_ms":30000}'
124
-
125
- # Text-to-speech (1 AMIKO) — returns { url, format, service }
126
- amiko service tts 21m00Tcm4TlvDq8ikWAM "Hello world"
127
-
128
- # Composition plan ($0.02)
129
- amiko service call POST /v1/music/plan '{"prompt":"epic orchestral"}'
130
-
131
- # Any endpoint
132
- amiko service call <METHOD> <path> [body]
128
+ amiko markets search "AI agents" # 1 AMIKO — X/Twitter search
129
+ amiko markets image "a sunset over mountains" --yes # 5 AMIKO — gpt-image-1 by default
130
+ amiko markets image "logo" --background transparent # transparent bg
131
+ amiko markets image "portrait" --size 1024x1792 # custom size
132
+ amiko markets amazon search "usb c cable" # 1 AMIKO — product search
133
+ amiko markets amazon quote B01GGKYKQM # free — price quote
134
+ amiko markets service list # all services + prices
135
+ amiko markets service call POST /v1/sfx '{"text":"thunder","duration_seconds":5}'
136
+ amiko markets service call POST /v1/music '{"prompt":"lo-fi beat","music_length_ms":30000}'
137
+ amiko markets service tts 21m00Tcm4TlvDq8ikWAM "Hello world"
138
+ amiko markets service call POST /v1/music/plan '{"prompt":"epic orchestral"}'
139
+ amiko markets service call <METHOD> <path> [body] # any MPP endpoint
140
+ amiko markets discover # service info + pricing
133
141
  ```
134
142
 
135
- Audio and image endpoints return permanent Supabase Storage URLs.
143
+ All paid markets commands auto-select the twin's active Solana wallet. Pass `--wallet <address>` only to override. Audio and image endpoints return permanent Supabase Storage URLs.
136
144
 
137
- ### Bridge
145
+ ## Account & Twin
138
146
 
139
147
  ```bash
140
- amiko bridge quote 10 # cross-chain USDC quote
141
- amiko bridge send 10 --from solana --to tempo # execute bridge
148
+ amiko accounts # resolved identity (authenticated, userId, twinId, platform)
149
+ amiko info # twin info (name, description, public, voice, avatar)
150
+ amiko twin update --name "New Name"
151
+ amiko twin update --description "..."
152
+ amiko twin update --public true --yes # destructive — requires --yes in non-TTY
142
153
  ```
143
154
 
144
- ### Other
155
+ ## Documents (RAG)
145
156
 
146
157
  ```bash
147
- amiko discovery # MPP service info + pricing
148
- amiko config show # view config
149
- amiko update # update CLI to latest (on twins: also refreshes /data, symlink, skill)
150
- amiko --help # all commands
158
+ amiko docs list # list
159
+ amiko docs upload ./notes.pdf # path
160
+ amiko docs upload https://example.com/x.pdf # URL
161
+ cat file.pdf | amiko docs upload - --stdin --name file.pdf
162
+ amiko docs delete <docId> --yes # destructive
163
+ amiko docs presign ./file.pdf # presigned S3 URL only
151
164
  ```
152
165
 
153
- Agent wallet balances are surfaced by `amiko credits balance` (shows credit balance + wallet balances across all chains in one call). There is no standalone `wallet` command.
154
-
155
- ### Account & Twin
166
+ ## Voice
156
167
 
157
168
  ```bash
158
- amiko accounts # show resolved identity (mode, platform, user, active twin, wallets)
159
- amiko info # fetch twin info (name, description, is_public, voice, avatar)
160
- amiko twin:update --name "New Name" # rename the twin
161
- amiko twin:update --description "..." # update bio
162
- amiko twin:update --public true --yes # flip visibility (destructive — requires --yes in non-TTY)
169
+ amiko voice design --description "warm, low, male, confident, measured" # min 20 chars
170
+ amiko voice create --sample <generated_voice_id>
171
+ amiko voice clone ./me.mp3 # path | URL | -
172
+ amiko voice reset --yes # destructive
163
173
  ```
164
174
 
165
- All twin-scoped commands accept `--twin <id>` to target a non-default twin.
166
-
167
- ### Documents (RAG)
175
+ ## Avatar
168
176
 
169
177
  ```bash
170
- amiko docs # list uploaded documents
171
- amiko docs:upload ./notes.pdf # upload a local file
172
- amiko docs:upload https://example.com/x.pdf # upload from URL
173
- cat file.pdf | amiko docs:upload - --stdin --name file.pdf # upload from stdin
174
- amiko docs:delete <docId> --yes # delete (destructive)
175
- amiko docs:presign ./file.pdf # get a presigned S3 URL (no upload)
178
+ amiko avatar update --file ./portrait.png --yes # max 5 MB, destructive
176
179
  ```
177
180
 
178
- ### Voice
181
+ ## Friends
179
182
 
180
183
  ```bash
181
- amiko voice:design --description "warm, low, male, confident, measured" # min 20 chars; returns preview IDs
182
- amiko voice:create --sample <generated_voice_id> # commit a designed preview
183
- amiko voice:clone ./me.mp3 # clone from an audio file (path | URL | -)
184
- amiko voice:reset --yes # revert to default (destructive)
184
+ amiko friends list # list all
185
+ amiko friends list --type user # filter
186
+ amiko friends requests # pending requests (incoming + outgoing)
187
+ amiko friends requests --direction incoming
188
+ amiko friends add --id <userId>
189
+ amiko friends accept <friendshipId>
190
+ amiko friends remove <friendshipId> --yes # destructive
191
+ amiko friends matches # personality match candidates
192
+ amiko friends matches --relationship-type friend --dimension interest
193
+ amiko friends reports list # friend matching reports
194
+ amiko friends reports view <reportId> # full id from `--json`
185
195
  ```
186
196
 
187
- ### Avatar
197
+ ## Users
188
198
 
189
199
  ```bash
190
- amiko avatar:update --file ./portrait.png --yes # max 5 MB image/* (destructive — changes public avatar)
200
+ amiko users search <query> # search by name/handle
201
+ amiko users profile <handle> # public profile
191
202
  ```
192
203
 
193
- ### Friends
204
+ ## Feed & Posts
194
205
 
195
206
  ```bash
196
- amiko friends # list all friends
197
- amiko friends --type user # filter user-to-user
198
- amiko friends:add --id <userId> # send friend request
199
- amiko friends:accept <friendshipId> # accept pending
200
- amiko friends:remove <friendshipId> --yes # remove (destructive)
207
+ amiko feed # friends feed (default)
208
+ amiko feed --type for_you --limit 20
209
+ amiko feed --hashtag ai
210
+ amiko post create --content "hello from the CLI"
211
+ amiko post create --content "private note" --visibility private
212
+ amiko post create --content "look" --media https://...jpg
213
+ amiko post comment --id <postId> --comment "great post"
214
+ amiko post comment --id <postId> --comment "look" --media https://...jpg
215
+ amiko post comment --id <postId> --comment "..." --twin <id>
201
216
  ```
202
217
 
203
- ### Feed & Posts
218
+ ## Composio
204
219
 
205
220
  ```bash
206
- amiko feed # friends feed (default)
207
- amiko feed --type for_you --limit 20 # public for-you feed
208
- amiko feed --hashtag ai # filter by hashtag
209
- amiko post:create --content "hello from the CLI" # public post (default)
210
- amiko post:create --content "private note" --visibility private # private post
211
- amiko post:create --content "look" --media https://...jpg # attach media URL(s)
212
- amiko post:comment --id <postId> --comment "great post" # comment as user
213
- amiko post:comment --id <postId> --comment "look" --media https://...jpg # comment with attached media
214
- amiko post:comment --id <postId> --comment "..." --twin <id> # comment as the twin
221
+ amiko composio connect --app gmail # prints OAuth URL
222
+ amiko composio disconnect --app gmail --yes # destructive
215
223
  ```
216
224
 
217
- ### Composio (external apps)
225
+ ## Other
218
226
 
219
227
  ```bash
220
- amiko composio:connect --app gmail # prints OAuth URL — open in a browser
221
- amiko composio:disconnect --app gmail --yes # disconnect (destructive)
228
+ amiko config show # resolved config
229
+ amiko update # self-update
230
+ amiko --help # top-level help
231
+ amiko <group> --help # e.g. `amiko wallets --help`
222
232
  ```
223
233
 
224
- ### JSON output
234
+ ## JSON output
225
235
 
226
- Every new command supports `--json` for structured output suitable for piping or parsing:
236
+ Most commands support `--json` for structured output:
227
237
 
228
238
  ```bash
229
- amiko friends --json | jq '.items[] | .friend.name'
239
+ amiko wallets list --json | jq '.wallets[].wallet_address'
240
+ amiko friends list --json | jq '.friends[] | .friend.name'
230
241
  amiko info --json | jq -r '.name'
231
242
  ```
232
243
 
233
- ## Service Costs
234
-
235
- | Service | Cost | Command |
236
- |---------|------|---------|
237
- | X/Twitter search | 1 AMIKO | `amiko search "<query>"` |
238
- | Image generation | 5 AMIKO | `amiko image "<prompt>"` |
239
- | Amazon search | 1 AMIKO | `amiko amazon search "<query>"` |
240
- | Amazon quote | Free | `amiko amazon quote <ASIN>` |
241
- | Sound effects | $0.05 | `amiko service call POST /v1/sfx ...` |
242
- | Music generation | $0.10 | `amiko service call POST /v1/music ...` |
243
- | Text-to-speech | 1 AMIKO | `amiko service tts <voiceId> "<text>"` |
244
- | Swap quote | Free | `amiko swap quote ...` |
245
- | Swap execute | Gas only | `amiko swap send ...` |
246
- | Credit top-up | Amount in credits (10,000 = $1) | `amiko credits topup <credits>` |
244
+ ## Where to run
245
+
246
+ **Each agent must run `amiko` from inside its own workspace directory.** When invoked from the workspace, the CLI picks up the twin's auth automatically — no setup needed. Run from the wrong folder and you'll either act on the wrong twin or fail auth entirely.
247
+
248
+ - Before the first `amiko` call in a session, `cd` into the agent's workspace folder.
249
+ - If anything looks off, run `amiko accounts` — it prints the resolved `userId` and `twinId` so you can confirm scope.