manifold login anilist [flags]Local authorization-code OAuth for CLI commands that talk to AniList (migrations,
reconcile, registry import/prefill, anilist wipe manga, and pas5 create --source anilist).
Prefer this over pasting pin tokens.
Setup
-
Create a separate AniList developer client at anilist.co/settings/developer.
-
Set the redirect URI to exactly
http://127.0.0.1:8767/callback. -
Provide the client id and secret via one of:
- flags (
--client-id/--client-secret) cli/.env/ process env (MANIFOLD_ANILIST_CLIENT_ID/MANIFOLD_ANILIST_CLIENT_SECRET)- interactive prompt on a TTY (compiled binary with no env file) — values
are stored in the OS keychain under
manifold/anilist-oauth-client - already-saved keychain entry from a prior login
- flags (
Do not reuse the shared implicit clients:
49218(CLI app, localhost callback)- the Worker app
49060(PIN flow)
The CLI needs an authorization-code client with the loopback redirect above.
Flags
--client-id <id>
AniList CLI client ID. Falls back to MANIFOLD_ANILIST_CLIENT_ID, then the
OS keychain, then an interactive prompt on a TTY.
Example:
manifold login anilist --client-id "$MANIFOLD_ANILIST_CLIENT_ID"--client-secret <secret>
AniList CLI client secret. Falls back to MANIFOLD_ANILIST_CLIENT_SECRET,
then the OS keychain, then an interactive prompt on a TTY.
--paste-only
Skip binding the local callback server. Use on headless hosts (SSH boxes, CI
with a TTY) when the browser runs elsewhere: open the printed authorize URL on
another machine (or press c to copy it), press Enter, then paste
either the authorization code or the full callback URL from the address bar
(http://127.0.0.1:8767/callback?code=…&state=…). A connection-refused page is
expected — copy the URL anyway.
Example:
manifold login anilist --paste-onlyUsage
manifold login anilistBare command on a TTY (no flags): runs a setup wizard first — prints redirect
URI / developer-app notes, then asks for client id, client secret, and whether to
use --paste-only. Enter keeps defaults from env or the OS keychain. Client
credentials are saved under manifold / anilist-oauth-client.
You can also use Effect CLI’s global walkthrough:
manifold --wizard login anilistThe command then prints a browser authorization URL. On a TTY: press c to
copy the URL, Enter to paste a code or callback URL, Ctrl+C to cancel. By
default it also serves http://127.0.0.1:8767/callback for up to five minutes
and races that loopback against paste. If the port is busy, it falls back to
paste-only automatically.
After the code arrives, it exchanges for an access token, validates it with a
Viewer query, and stores the session in the OS keychain under manifold /
anilist-session.
AniList does not issue refresh tokens. When the session expires, run login
again. Optionally set MANIFOLD_ANILIST_TOKEN to override the keychain without
expiry tracking (useful for one-off scripts). If that env var is set after
login, the CLI warns that it still takes precedence.
Downstream commands resolve credentials as: flag → MANIFOLD_ANILIST_TOKEN →
keychain.