@heyamiko/amiko-cli 0.9.0-beta.0 → 0.9.0-beta.10

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.0",
3
+ "version": "0.9.0-beta.10",
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,227 @@ 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
13
 
14
- The `amiko` CLI is installed globally. Auth and payments are automatic via `.amiko.json` — never suggest `amiko login` or `amiko connect`.
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
15
 
16
- ## Critical Rules
17
-
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.
16
+ ## Top-level commands at a glance
24
17
 
25
- ### Pricing cheat sheet (quote this to the user before running)
26
-
27
- | Command | Cost |
28
- |---------|------|
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 |
39
- | `amiko credits topup ...` | Whatever amount you top up |
18
+ Each row is a first-level command group or command. Start here when the user asks what the CLI can do.
40
19
 
41
- ## Commands
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, add, accept request, remove |
30
+ | `amiko post <cmd>` | Create posts and comments on the feed (optionally with media) |
31
+ | `amiko feed` | Read the friends feed, for-you feed, or filter by hashtag |
32
+ | `amiko composio <cmd>` | Connect / disconnect third-party OAuth apps (Gmail, GitHub, …) |
33
+ | `amiko accounts` | Show the resolved identity (authenticated, userId, twinId, platform) |
34
+ | `amiko info` | Show the active twin (name, description, public, voice, avatar) |
35
+ | `amiko config <cmd>` | Show resolved config |
36
+ | `amiko update` | Self-update the CLI |
42
37
 
43
- ### Credits & Wallet
38
+ All twin-scoped commands accept `--twin <id>` to target a non-default twin.
44
39
 
45
- **Credits are NOT tokens.** 10,000 credits = $1.00 USD.
40
+ ## The `--wallet` default (read this before any paid command)
46
41
 
47
- The `topup` command accepts **one** of three amount forms:
42
+ 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:
48
43
 
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" |
44
+ - **Default**: the CLI auto-selects the twin's first active **Solana** wallet from `GET /api/agents/{id}/wallets`.
45
+ - **Override**: pass `--wallet <address>` only if you want a different wallet than the default.
46
+ - **No wallet yet?** The CLI will tell you to run `amiko wallets create --chain solana` first. Create once per twin; reuse forever.
47
+ - **Bridges**: `wallets bridge quote/send` similarly default `--depositor` to the wallet on the origin chain (Solana for `--from solana`, Base for `--from base`).
54
48
 
55
- **Map user intent directly to the right form** — no manual price math needed:
49
+ > 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.
56
50
 
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`
51
+ ## Critical Rules
62
52
 
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.
53
+ 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`).
54
+ 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.
55
+ 3. **Never retry a failed command.** Report the error and stop. Every paid call costs tokens even on failure.
56
+ 4. **Never suggest `amiko login` or `amiko connect`.** These don't exist. Auth is automatic when you run from your workspace folder.
57
+ 5. **Check balance before expensive operations.** Run `amiko credits balance` first if unsure.
58
+ 6. **Payments are automatic.** The platform signs and moves tokens from the twin's wallet for each paid call — the CLI never holds keys.
64
59
 
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
- ```
60
+ ### Pricing cheat sheet (quote this to the user before running)
71
61
 
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
62
+ | Command | Cost |
63
+ |---------|------|
64
+ | `amiko markets search "<query>"` | 1 AMIKO |
65
+ | `amiko markets image "<prompt>"` | 5 AMIKO |
66
+ | `amiko markets amazon search "<query>"` | 1 AMIKO |
67
+ | `amiko markets amazon quote <ASIN>` | Free |
68
+ | `amiko markets service tts <voiceId> "<text>"` | 1 AMIKO |
69
+ | `amiko markets service call POST /v1/sfx ...` | $0.05 |
70
+ | `amiko markets service call POST /v1/music ...` | $0.10 |
71
+ | `amiko markets service call POST /v1/music/plan ...` | $0.02 |
72
+ | `amiko wallets swap quote ...` | Free |
73
+ | `amiko wallets swap send ...` | Solana gas + 10bps |
74
+ | `amiko credits topup ...` | Whatever amount you top up |
77
75
 
78
- Supported tokens: AMIKO, SOL, USDC, USDT. All payments come from your agent's Solana wallet.
76
+ ## Credits
79
77
 
80
- ### Search (1 AMIKO)
78
+ **Display credits: 10,000 credits = $1.00 USD.**
81
79
 
82
80
  ```bash
83
- amiko search "AI agents" # search X/Twitter
84
- amiko search "bitcoin" --raw # raw JSON output
81
+ amiko credits balance # show balance as "N credits"
82
+ amiko credits topup --spend 1 --token SOL --yes # "1 SOL worth of credits"
83
+ amiko credits topup --usd 5 --token USDC --yes # $5 paying in USDC
84
+ amiko credits topup 10000 --token AMIKO --yes # 10,000 credits = $1
85
85
  ```
86
86
 
87
- ### Image Generation (5 AMIKO)
87
+ `topup` accepts **one** of three amount forms:
88
88
 
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
- ```
89
+ | Form | Meaning | Example |
90
+ |------|---------|---------|
91
+ | `<amount>` (positional) | credits | `amiko credits topup 10000 --token AMIKO` |
92
+ | `--usd <n>` | US dollars | `amiko credits topup --usd 5 --token USDC` |
93
+ | `--spend <n>` | spend N of `--token` | `amiko credits topup --spend 1 --token SOL` |
94
94
 
95
- Returns a permanent Supabase Storage URL.
95
+ Map user intent directly — no manual price math:
96
96
 
97
- ### Amazon
97
+ - "top up 1 SOL of credits" → `--spend 1 --token SOL`
98
+ - "top up $5 in USDC" → `--usd 5 --token USDC`
99
+ - "top up 10000 credits with AMIKO" → `10000 --token AMIKO`
98
100
 
99
- ```bash
100
- amiko amazon search "usb c cable" # product search (1 AMIKO)
101
- amiko amazon quote B01GGKYKQM # price quote (free)
102
- ```
101
+ 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
102
 
104
- ### Token Swaps
103
+ ## Wallets
105
104
 
106
105
  ```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
106
+ amiko wallets list # all twin wallets + cached balances
107
+ amiko wallets create --chain solana # create a wallet (solana | base)
108
+ amiko wallets balance <address> # force-sync one wallet; returns fresh balances
109
+ amiko wallets swap quote 1.0 SOL USDC # Jupiter quote (free)
110
+ amiko wallets swap send 1.0 SOL USDC --yes # --wallet defaults to your Solana wallet
111
+ amiko wallets swap tokens # supported tokens list
112
+ amiko wallets bridge quote 10 --from solana --to tempo --recipient <addr>
113
+ amiko wallets bridge send 10 --from solana --to tempo --recipient <addr> --yes
114
+ amiko wallets bridge status <txHash>
115
+ amiko wallets bridge routes
116
+ amiko wallets bridge limits
110
117
  ```
111
118
 
112
- Swaps execute via Jupiter on Solana. Supports: SOL, USDC, USDT, AMIKO, PYUSD, BONK, JUP, RAY, JitoSOL, mSOL, or any mint address.
119
+ - `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.
120
+ - `wallets create` is one-shot per `chain+custodian` pair (409 if one already exists) — run once for the twin and reuse.
121
+ - Swaps run via Jupiter on Solana. Supported: SOL, USDC, USDT, AMIKO, PYUSD, BONK, JUP, RAY, JitoSOL — or any mint address.
122
+ - Bridging goes through Across Protocol. Solana ↔ EVM requires `--recipient` (different address formats).
113
123
 
114
- ### MPP Services
124
+ ## Market (paid MPP services)
115
125
 
116
126
  ```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]
127
+ amiko markets search "AI agents" # 1 AMIKO — X/Twitter search
128
+ amiko markets image "a sunset over mountains" --yes # 5 AMIKO — gpt-image-1 by default
129
+ amiko markets image "logo" --background transparent # transparent bg
130
+ amiko markets image "portrait" --size 1024x1792 # custom size
131
+ amiko markets amazon search "usb c cable" # 1 AMIKO — product search
132
+ amiko markets amazon quote B01GGKYKQM # free — price quote
133
+ amiko markets service list # all services + prices
134
+ amiko markets service call POST /v1/sfx '{"text":"thunder","duration_seconds":5}'
135
+ amiko markets service call POST /v1/music '{"prompt":"lo-fi beat","music_length_ms":30000}'
136
+ amiko markets service tts 21m00Tcm4TlvDq8ikWAM "Hello world"
137
+ amiko markets service call POST /v1/music/plan '{"prompt":"epic orchestral"}'
138
+ amiko markets service call <METHOD> <path> [body] # any MPP endpoint
139
+ amiko markets discover # service info + pricing
133
140
  ```
134
141
 
135
- Audio and image endpoints return permanent Supabase Storage URLs.
142
+ 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
143
 
137
- ### Bridge
144
+ ## Account & Twin
138
145
 
139
146
  ```bash
140
- amiko bridge quote 10 # cross-chain USDC quote
141
- amiko bridge send 10 --from solana --to tempo # execute bridge
147
+ amiko accounts # resolved identity (authenticated, userId, twinId, platform)
148
+ amiko info # twin info (name, description, public, voice, avatar)
149
+ amiko twin update --name "New Name"
150
+ amiko twin update --description "..."
151
+ amiko twin update --public true --yes # destructive — requires --yes in non-TTY
142
152
  ```
143
153
 
144
- ### Other
154
+ ## Documents (RAG)
145
155
 
146
156
  ```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
157
+ amiko docs list # list
158
+ amiko docs upload ./notes.pdf # path
159
+ amiko docs upload https://example.com/x.pdf # URL
160
+ cat file.pdf | amiko docs upload - --stdin --name file.pdf
161
+ amiko docs delete <docId> --yes # destructive
162
+ amiko docs presign ./file.pdf # presigned S3 URL only
151
163
  ```
152
164
 
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
165
+ ## Voice
156
166
 
157
167
  ```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)
168
+ amiko voice design --description "warm, low, male, confident, measured" # min 20 chars
169
+ amiko voice create --sample <generated_voice_id>
170
+ amiko voice clone ./me.mp3 # path | URL | -
171
+ amiko voice reset --yes # destructive
163
172
  ```
164
173
 
165
- All twin-scoped commands accept `--twin <id>` to target a non-default twin.
166
-
167
- ### Documents (RAG)
168
-
169
- ```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)
176
- ```
177
-
178
- ### Voice
174
+ ## Avatar
179
175
 
180
176
  ```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)
177
+ amiko avatar update --file ./portrait.png --yes # max 5 MB, destructive
185
178
  ```
186
179
 
187
- ### Avatar
180
+ ## Friends
188
181
 
189
182
  ```bash
190
- amiko avatar:update --file ./portrait.png --yes # max 5 MB image/* (destructive — changes public avatar)
183
+ amiko friends list # list all
184
+ amiko friends list --type user # filter
185
+ amiko friends add --id <userId>
186
+ amiko friends accept <friendshipId>
187
+ amiko friends remove <friendshipId> --yes # destructive
191
188
  ```
192
189
 
193
- ### Friends
190
+ ## Feed & Posts
194
191
 
195
192
  ```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)
193
+ amiko feed # friends feed (default)
194
+ amiko feed --type for_you --limit 20
195
+ amiko feed --hashtag ai
196
+ amiko post create --content "hello from the CLI"
197
+ amiko post create --content "private note" --visibility private
198
+ amiko post create --content "look" --media https://...jpg
199
+ amiko post comment --id <postId> --comment "great post"
200
+ amiko post comment --id <postId> --comment "look" --media https://...jpg
201
+ amiko post comment --id <postId> --comment "..." --twin <id>
201
202
  ```
202
203
 
203
- ### Feed & Posts
204
+ ## Composio
204
205
 
205
206
  ```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
207
+ amiko composio connect --app gmail # prints OAuth URL
208
+ amiko composio disconnect --app gmail --yes # destructive
215
209
  ```
216
210
 
217
- ### Composio (external apps)
211
+ ## Other
218
212
 
219
213
  ```bash
220
- amiko composio:connect --app gmail # prints OAuth URL — open in a browser
221
- amiko composio:disconnect --app gmail --yes # disconnect (destructive)
214
+ amiko config show # resolved config
215
+ amiko update # self-update
216
+ amiko --help # top-level help
217
+ amiko <group> --help # e.g. `amiko wallets --help`
222
218
  ```
223
219
 
224
- ### JSON output
220
+ ## JSON output
225
221
 
226
- Every new command supports `--json` for structured output suitable for piping or parsing:
222
+ Most commands support `--json` for structured output:
227
223
 
228
224
  ```bash
229
- amiko friends --json | jq '.items[] | .friend.name'
225
+ amiko wallets list --json | jq '.wallets[].wallet_address'
226
+ amiko friends list --json | jq '.friends[] | .friend.name'
230
227
  amiko info --json | jq -r '.name'
231
228
  ```
232
229
 
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>` |
230
+ ## Where to run
231
+
232
+ **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.
233
+
234
+ - Before the first `amiko` call in a session, `cd` into the agent's workspace folder.
235
+ - If anything looks off, run `amiko accounts` — it prints the resolved `userId` and `twinId` so you can confirm scope.