chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
---
|
||||
summary: "Manus provider: browser session_id cookie auth for credit balance, monthly credits, and daily refresh tracking."
|
||||
read_when:
|
||||
- Adding or modifying the Manus provider
|
||||
- Debugging Manus cookie imports or API responses
|
||||
- Adjusting Manus usage display or credit formatting
|
||||
---
|
||||
|
||||
# Manus Provider
|
||||
|
||||
The Manus provider tracks credit usage on [manus.im](https://manus.im) via browser `session_id` cookie authentication.
|
||||
|
||||
## Features
|
||||
|
||||
- **Monthly credit gauge**: Shows Pro monthly credits used vs. plan total (`proMonthlyCredits` − `periodicCredits`).
|
||||
- **Daily refresh gauge**: Shows daily refresh credits used vs. max refresh allotment, with reset timing.
|
||||
- **Balance display**: Total credits available, shown in the menu identity line.
|
||||
- **Cookie auth**: Automatic browser cookie import (Safari, Chrome, Firefox) or manual cookie header.
|
||||
- **Env var support**: `MANUS_SESSION_TOKEN` (raw token) or `MANUS_COOKIE` (full cookie header) for CLI/headless usage.
|
||||
|
||||
## Setup
|
||||
|
||||
1. Open **Settings → Providers**
|
||||
2. Enable **Manus**
|
||||
3. Log in to [manus.im](https://manus.im) in your browser
|
||||
4. Cookie import happens automatically on the next refresh
|
||||
|
||||
### Manual cookie mode
|
||||
|
||||
1. In **Settings → Providers → Manus**, set Cookie source to **Manual**
|
||||
2. Open your browser DevTools on `manus.im`, copy the `Cookie:` header from any API request (must contain `session_id=...`)
|
||||
3. Paste the header into the cookie field in CodexBar
|
||||
|
||||
### Environment variables (CLI / headless)
|
||||
|
||||
- `MANUS_SESSION_TOKEN`: the raw `session_id` value.
|
||||
- `MANUS_COOKIE`: a full cookie header; the provider extracts `session_id` from it.
|
||||
|
||||
Either works; raw-token form is preferred when only one value is needed.
|
||||
|
||||
## How it works
|
||||
|
||||
A single API endpoint is fetched with a bearer token derived from the `session_id` cookie value:
|
||||
|
||||
- `POST https://api.manus.im/user.v1.UserService/GetAvailableCredits` — returns credit fields including `totalCredits`, `freeCredits`, `periodicCredits`, `proMonthlyCredits`, `refreshCredits`, `maxRefreshCredits`, `nextRefreshTime`, and `refreshInterval`.
|
||||
|
||||
Cookie domain: `manus.im`. Valid `session_id` cookies are cached in Keychain and reused until the session expires.
|
||||
|
||||
The response parser tolerates both a direct object and common envelope shapes (`data` / `result` / `response` / `availableCredits`). Payloads missing all expected credit fields are rejected as a parse error rather than surfacing a misleading zero-credit snapshot.
|
||||
|
||||
## Token accounts
|
||||
|
||||
Manus supports multiple accounts via the standard token-account mechanism. Add entries to `~/.codexbar/config.json` (`tokenAccounts`) with the full `Cookie:` header (containing `session_id=...`), then switch between accounts from the menu.
|
||||
|
||||
## CLI
|
||||
|
||||
```bash
|
||||
codexbar usage --provider manus --verbose
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### "No Manus session token provided"
|
||||
|
||||
Log in to [manus.im](https://manus.im) in a supported browser (Safari, Chrome, Firefox), then refresh CodexBar. Alternatively, set `MANUS_SESSION_TOKEN` or `MANUS_COOKIE`, or paste a cookie header in manual mode.
|
||||
|
||||
### "Invalid Manus session token"
|
||||
|
||||
Your session has expired or been revoked. Log out and back in to Manus, or paste a fresh `Cookie:` header in manual mode.
|
||||
|
||||
### "Response missing expected credits fields"
|
||||
|
||||
The API returned a 200 response that doesn't look like a credits payload (often an error object). Re-login to Manus; if it persists, the upstream response schema may have changed.
|
||||
Reference in New Issue
Block a user