altllm-portal-authlisted
Install: claude install-skill internet-court/internet-court-skill
# AltLLM Portal Auth
Wallet login and session bootstrap for the local `altllm` CLI, including external signers such as Privy.
## Shared Setup
> Before the first `altllm` command in a fresh checkout, read and follow:
> - `../_shared/preflight.md`
> - `../_shared/session-and-target.md`
## Command Index
| Command | Purpose |
|---|---|
| `login-wallet --private-key-env <name>` | Sign in with a locally available private key from an environment variable |
| `login-wallet --private-key-file <path>` | Sign in with a locally available private key from a file |
| `login-wallet --private-key <hex> --allow-unsafe-private-key-argv` | Sign in with an inline private key when argv exposure is explicitly accepted |
| `login-wallet --prepare` | Fetch a challenge for external signing |
| `login-wallet --nonce <nonce> --signature <sig>` | Verify an externally signed challenge and save the session |
| `status` | Show saved Portal session user and target URL status without exposing the token |
| `logout` | Remove the local saved Portal session file |
## Rules
- Do not assume the CLI must control the wallet private key.
- If the wallet can sign the challenge message, use the prepare + verify flow.
- External signers such as Privy are valid as long as they return a standard wallet signature for the challenge.
- If neither a local private key nor `--signature` is available, return the challenge payload and stop.
- Before local auto-signing, validate that the returned challenge matches the requ