docs: agent can discover accounts via account list
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+12
-7
@@ -33,8 +33,9 @@ This manual is for **using and administering** `emcli`. It assumes you have the
|
||||
## 1. Key concepts
|
||||
|
||||
**Two kinds of commands.**
|
||||
- **Admin commands** (`init`, `account`, `whitelist`, `config`, `audit`) require `EMCLI_ADMIN_KEY`
|
||||
and are for *you*, the human. They print human-readable text or open an interactive form.
|
||||
- **Admin commands** (`init`, `account add/edit/remove`, `whitelist`, `config`, `audit`) require
|
||||
`EMCLI_ADMIN_KEY` and are for *you*, the human. They print human-readable text or open an
|
||||
interactive form. (`account list` is the one exception — it is also an agent command; see below.)
|
||||
- **Agent commands** (`list`, `get`, `search`, `ack`, `send`, `doctor`) require `EMCLI_KEY` (or
|
||||
`EMCLI_ADMIN_KEY` as a superset) and are for the *agent*. They print one line of JSON and
|
||||
nothing else, so a program can consume them reliably. (`doctor` prints human-readable text but
|
||||
@@ -124,8 +125,12 @@ DEK for an admin command, even if it somehow knows the agent key.
|
||||
|
||||
| Command | Role required |
|
||||
|---|---|
|
||||
| `list`, `get`, `search`, `ack`, `send`, `doctor` | Agent (`EMCLI_KEY` or `EMCLI_ADMIN_KEY`) |
|
||||
| `account`, `whitelist`, `config`, `audit` | Admin (`EMCLI_ADMIN_KEY` required) |
|
||||
| `list`, `get`, `search`, `ack`, `send`, `doctor`, `account list` | Agent (`EMCLI_KEY` or `EMCLI_ADMIN_KEY`) |
|
||||
| `account add/edit/remove`, `whitelist`, `config`, `audit` | Admin (`EMCLI_ADMIN_KEY` required) |
|
||||
|
||||
`account list` is dual-role: with the admin key it prints the full `NAME MODE IMAP USER` table;
|
||||
with only `EMCLI_KEY` (an agent) it prints a JSON envelope exposing just `name`, `from`, and
|
||||
`can_send` — no host or login username.
|
||||
| `init` | Both keys required (writes both wrap slots) |
|
||||
|
||||
### Agent launcher guidance
|
||||
@@ -552,8 +557,8 @@ base64-encoded 32-byte key (section 2). Agent commands (`list`, `get`, `search`,
|
||||
`doctor`) need this key.
|
||||
|
||||
**"this command requires EMCLI_ADMIN_KEY (admin privilege)".** Set `EMCLI_ADMIN_KEY` (section 2).
|
||||
Admin commands (`account`, `whitelist`, `config`, `audit`, `init`) need this key; `EMCLI_KEY`
|
||||
alone is not enough for them.
|
||||
Admin commands (`account add/edit/remove`, `whitelist`, `config`, `audit`, `init`) need this key;
|
||||
`EMCLI_KEY` alone is not enough for them. (`account list` is the exception — an agent can run it.)
|
||||
|
||||
**A command fails to decrypt / wrong key.** The key doesn't match the one used when the database
|
||||
was initialised. Restore the original key, or re-run `emcli init` (idempotent — it won't regenerate
|
||||
@@ -594,7 +599,7 @@ emcli <command> --help # usage and flags for one command
|
||||
# Admin (requires EMCLI_ADMIN_KEY)
|
||||
emcli init # create DB + add first account (form)
|
||||
emcli account add [flags | none for form] # add an account
|
||||
emcli account list # list accounts (no secrets)
|
||||
emcli account list # full table (admin) / name+from+can_send JSON (agent)
|
||||
emcli account edit --name N [flags | none for form] # change an account
|
||||
emcli account remove --name N --yes # delete an account
|
||||
emcli whitelist in|out add|remove|list --account N [--address A]
|
||||
|
||||
Reference in New Issue
Block a user