RainyToken
RainyToken · v%1$s
RainyToken
AI Usage Panel
OpenCode Go usage + DeepSeek balance, auto-refresh
Rainy
Back
Cancel
Add Widget
Got it
Refresh
Settings
Delete
Clear
Save
Sign in within app
Go
◀ Prev
Next ▶
Add widget to home screen
Language
Select language
Follow system
简体中文
繁體中文
English
View details
View usage details
Raw data
Sync usage data
I\'m logged in, save
Keep waiting
Loading…
Unknown error
All models
👈 Select a service to view details
Tap a card on the left
Settings
API Management
Test
Add API Key
Add a service
All services have been added
No entries yet
Tap the + in the top-right corner to add an API key
Delete credential?
This will remove the saved credential for %1$s.
Not configured
%1$d accounts · tap to manage
Last verified: %1$s
Cached: %1$s %2$s
✅ %1$s connected: %2$s %3$s
❌ %1$s failed: %2$s
Invalid credential
Credential changed
Too many requests
Network error
Server error (HTTP %1$d)
Parse failed
Credentials
About RainyToken
Tips
Debug log
Usage details
Overview
Raw data
Charts
Not set up
Configured
Expired
Re-login
Refresh failed
No data
Pending
OK
Not set up · Tap to add
Configured · Valid
Expired · Tap to reconfigure
Needs re-verification
Manual entry mode
Credential set
No credential
Loading
Latest
Cached
Failed
Awaiting input
AI Balance Overview
No services configured yet
Only services with credentials are shown on the home page.
Go to Settings
Never fetched
Updated just now
Updated %1$d min ago
Updated %1$d h ago
Updated %1$s
💡 Long-press a card to reorder
⚠ %1$s
Stored locally & encrypted, nothing is uploaded
Add home screen widget?
This will ask the launcher to add the RainyToken widget. Some systems may still show their own confirmation dialog.
Shortcut permission denied. Please allow it in system settings and try again.
The launcher rejected the request. Please check launcher permissions.
This launcher does not support in-app adding. Long-press home → Widgets → find RainyToken.
Tap to configure credentials
Pull to refresh
Service currently unavailable
%1$s%2$s used this month
Remaining
· %1$s used / %2$s total
%1$s used
5h used
· %1$s
Resets in %1$s
REST API · ¥
WebView fetch · 5h quota
JSON API · $
ChatGPT · Codex quota
Cookie fetch · Cloud quota
Cloud-IDE-JWT · IDE 额度
OAuth · CodeBuddy 同体系积分
自托管面板 · 用户级 sk- Key 余额
Breakdown
Account info
Resources
#%1$s
Plan credits
Used / Total
In use
Next cycle
Platform rewards
Expires: %1$s
Reward %1$d
Remaining
Billing mode
Credits
USD
%1$s billing
Subscribed
Paid plan
Free plan
Consumed
Consumption ratio
Total credits
Entitlement packs
Packages
Frozen
Credits billing
USD billing
New user
Paid user
Subscription
Yes
No
Trae credentials
Paste the Cloud-IDE-JWT from your Trae account session (starts with ey…). Used as Authorization: Cloud-IDE-JWT header.
Cloud-IDE-JWT
Region
Check-in device ID (optional)
Check-in requires the device ID bound to the official desktop client. If it keeps failing, find the latest did= value in the client log (AppData\\Roaming\\Trae CN\\logs\\<date>\\main.log) and paste it here. Leave blank to use the built-in default.
How to find the device ID? (step-by-step guide)
Path copied, paste it in Win+R or File Explorer
Find device ID (4 steps)
1. On your PC, press Win+R, paste the path below and press Enter (or copy it and paste into the File Explorer address bar):
2. Open the folder with the latest date in its name.
3. Open main.log with Notepad.
4. Press Ctrl+F and search did= — the number after it (like did=895482260673817) is your device ID. Copy it and paste into the field above.
CN
INTL
WorkBuddy credentials
Paste the access & refresh tokens from your Tencent WorkBuddy (CodeBuddy) session. Refresh token is rotated once per use.
Access Token
Refresh Token
Access and refresh tokens are required
Sub2API instance
Any user of the instance: paste the sk-… API key issued to you to see your balance (no admin needed). No key? Use the panel login email & password.
Instance base URL
https://api.example.com
Authentication
API Key (sk-…)
Or panel account
Email
Password
Base URL and (API Key or email+password) are required
Usage breakdown
Daily and per-model usage from your Sub2API gateway
Today
7 days
30 days
90 days
All
Requests
Tokens
Cost
Daily usage
By model
All models
%1$s requests · %2$s tokens
No daily usage data in this range
No spend in this range
Model: %1$s · in current period
No model data in this range
Daily check-in
Check in every day for credits; streaks earn bonuses
Check in
Checking…
Check-in successful
Already checked in today
Already checked in (streak %1$d days)
Check-in failed, please check credentials
This service does not support check-in
Checked in today
Add your credentials first to check in.
INTL check-in not yet supported, please use a CN account
Device check-in limit reached today
Too many participants, please try again later
Sign-in requires the device ID bound to the official desktop client. If it keeps failing, open the Trae client log folder (AppData\\Roaming\\Trae CN\\logs\\<date>\\main.log) on your PC and search for did= to get the current bound device ID, then paste it into Settings → Trae → Check-in device ID.
Check-in failed (code=%1$d)
Check-in successful +%1$d credits
Entitlement credits
Unlimited
Remaining %1$s/%2$s pts · used %3$s
General credits
Work credits
Sign in normally on the opened page; the app reads the session automatically. Manual API Key still works.
Panel token captured — tap Save to apply
✓ Panel token captured
d
h
m
5 hours
5h
5h usage
5-hour rolling
Week
Month
Monthly
Usage
Usage window%1$s
Usage window
Model usage
Quota $%1$s
OpenCode Usage
CommandCode Usage
%1$d records
Tap to sync
Input tokens
Output tokens
Reasoning tokens
Total cost
Cache read %1$s
Cache write %1$s
No data yet · tap 🔄 to sync
✓ %1$d new records
Partial sync: %1$d records inserted, %2$d pages failed
tap to switch
All times in UTC+0
Switched to UTC+8, charts shown in Beijing time
Switched to UTC+0, charts shown in UTC
$%1$s spent / $%2$s total
$%1$s remaining
Extra credits
By model
By day (UTC+0)
%1$d models
%1$d
Start time
End time
Spending (USD)
API requests
Token usage
Output
Input (miss)
Cache hit
Time
Model
Input(cache)
Output
Cost
All
Last 5 hours
Last 12 hours
Last 24 hours
Today
Yesterday
Last 7 days
Last 30 days
This month
Custom
Custom day
Custom month
Custom range
A tiny tool to check AI balances.\nCredentials are encrypted locally — nothing is uploaded.
View all %1$d hidden tips
Inspect token refresh, network requests and other debug records
✓ Login state configured (%1$d cookies)
How to get the Cookie?
1. Open the login page below in desktop Chrome
2. Sign in with GitHub / Google (won\'t be blocked)
3. After login, press F12 → Application → Cookies
4. Copy all cookies of the site and paste them above
Format: name1=value1; name2=value2
How to get OpenCode Go credentials?
1. Open opencode.ai/auth in desktop Chrome
2. Sign in with GitHub / Google (Google won\'t block Chrome)
3. You\'ll land on the dashboard, URL looks like:
https://opencode.ai/workspace/{id}/go
4. Copy the {id} segment → workspaceId
5. F12 → Application → Cookies
6. Find the cookie named auth under opencode.ai
7. Copy its Value field → auth cookie
Note: only the auth cookie is needed, not the whole cookie string
How to get CommandCode credentials?
1. Open https://commandcode.ai and sign in with GitHub
▸ Get API Key (required):
Avatar (top right) → Settings → API Keys → Create a Key
▸ Get all cookies (for usage records):
F12 → Application → Cookies → commandcode.ai
Select all cookies and copy the whole string
Paste it below — no need to pick them one by one
Tip: balance works without cookies, usage records will just be empty.
How to get Codex auth.json?
1. Run codex-oauth-proxy or
codex-proxy in a terminal to sign in to ChatGPT
2. The credential file is saved at:
Saved
Credentials saved
Connected! Balance: %1$s %2$s
Connected, credentials saved
API Key cannot be empty
Invalid JSON format
Service rejected this credential (401/403)
Credentials changed during test
Too many requests (429)
Server error (%1$d)
Network error: %1$s
, previous credential restored
, credential changed, rollback skipped
Test failed. %1$s%2$s
Testing is not supported for this service
Both auth cookie and workspaceId are required
Cookie cannot be empty
Credential not configured
Credential missing or expired
Credential invalid, please reconfigure in Settings
Login expired, please sign in again
Auto check-in
Checked in ✓
Daily auto check-in
%1$s checked in, +%2$d credits
%1$s already checked in today
%1$s check-in failed: %2$s
%1$s check-in failed, please check in manually
%1$s · Accounts
Add Account
Account actions
Default
Account %1$d
Set as Default
Rename
Rename Account
Account name
Delete Account
Delete this account? Its credential and balance cache will also be removed.
No accounts yet. Tap below to add one.
%1$s · %2$d accounts
%1$s · New Account
%1$s · %2$s
%1$s (Default)
Set as default account
Renamed
Account deleted
Delete
Credential invalid, please log in again
Credentials changed, reloading
Credentials changed, please retry
Network error, please check your connection
Network error
Server error (HTTP %1$d)
Too many requests%1$s
, retry in %1$d seconds
Usage activation is not supported
Please select a model first
No cookie captured, please make sure you\'re logged in
No login URL configured
Login timed out, please retry
URL should start with %1$s
Authorization failed: %1$s
State mismatch, please retry
Callback missing authorization code
Token exchange failed, check the debug log
✓ Usage activated
✓ Activation successful
Request result
Error: %1$s
Response body:\n%1$s
Model: %1$s
Response ID: %1$s
Reply:
(empty)
(no reply content)
(response parsing failed, but the request was sent)
Usage: prompt=%1$s completion=%2$s total=%3$s tokens
Usage: input=%1$s output=%2$s tokens
Token refresh failed. Please log in again or import auth.json.
Sign in to %1$s
Done logging in?
If you finished signing in but the page didn\'t redirect, tap the button below to grab the cookie and save your session.
No log entries yet\nRefresh Codex usage and debug info will show up here
OpenCode Go · Usage
DeepSeek balance
Auto refresh
%1$s · Quota
%1$s · %2$s
Updated %1$s
No data
No services configured yet
Refreshing…
Reorder cards by long-press
Long-press a card to reorder it
Long-press any service card on the home screen and drag it wherever you like. The order is saved automatically.
Widget top-left opens the app
Tap the widget\'s top-left mark to open the app
The RainyToken › mark at the top-left of the widget opens the app. Tapping elsewhere switches services.
Tap charts for details
Tap a chart bar to see that time slot
Tap or slide on the usage charts to inspect the exact values of a time slot.
Chart titles are clickable
Tap a chart title for a per-model breakdown
Tapping a chart card title (e.g. "Spending") shows a per-model breakdown dialog.
Switch chart timezone
Usage details can toggle UTC+0 / UTC+8
The usage details page can toggle between UTC+0 and UTC+8; chart labels follow along.
CCGO clear & resync
CCGO details can clear cache and resync
The "Clear" button on the CCGO usage details page deletes local cache and re-fetches everything.
View usage details
Service cards link to usage charts
Configured service cards show a "View usage details" entry at the bottom that opens the charts.
Browse raw data
Top-right of usage details opens raw records
"Raw data" at the top-right of usage details lists every record with pagination.
Pull-to-refresh syncs usage
Pull to refresh syncs balances and usage
Pull-to-refresh on the home screen refreshes balances and also syncs OCGO / CCGO usage records.
Credential guides
Credential pages include step-by-step guides
The "How to get" button at the bottom of credential pages walks through every service step by step.
Clipboard auto-import
Codex supports one-tap import from clipboard
The Codex credential page supports "Auto-import from clipboard": paste auth.json and it fills in with one tap.
Jump to a page number
Raw data page accepts a page number
The raw data page lets you enter a page number to jump directly — no need to flip through pages.
Widget auto-refresh
Swipe to the widget and it auto-refreshes
The widget refreshes balances when you swipe to it, or tap the ↻ button manually.
%1$d calls
Pick a date
Pick a month (any day)
Date range
Start date
End date
Spending breakdown
Request breakdown
Token breakdown
Clear data
This clears all cached CommandCode usage and re-syncs. It takes a few seconds.
Continue?
Confirm (%1$ds)
Yes, clear
Close
From %1$s
To %1$s
Apply custom range
OK
End date cannot be earlier than start date %1$s
Time %1$s:%2$s
No data
Total: %1$s
Total
Records
Cache read
Cache write
Cache token breakdown
※ Cache reads are included in "Input tokens"
%1$d calls
MMM d, EEEE
%1$d calls · $%2$s
Raw data
Cache write (5m)
Cache write (1h)
Cost (USD)
Cost (raw)
~/.config/codex-oauth-proxy/auth.json
3. Open it with a text editor,
copy everything and paste it above
JSON example:
{"tokens": {
"access_token": "...",
"refresh_token": "...",
"expiresAt": 1783727108252
}}
Tip: the app auto-refreshes the token after import,
no manual updates needed.
Ollama credentials
Copy the full cookie from your browser. After logging into ollama.com/settings, find the Cookie header in DevTools → Network and copy it.
Update credentials
Save credentials
Test & save
Open Ollama Settings in browser
Copy login URL to clipboard
One-tap usage API Key (optional)
With an Ollama Cloud API Key, the details page can send one request to activate usage stats. Get it at ollama.com/settings → API Keys.
ollama-xxx or sk-xxx
Save API Key
OpenCode Go credentials
Needs both auth cookie and workspaceId. The app fetches the dashboard via OkHttp and parses 5h/week/month usage.
Auto-import from clipboard
The {id} segment of the dashboard URL
auth Cookie value
F12 → Cookies → opencode.ai → Value of auth
How to get these two?
Open login page in browser
With an OpenCode Zen API Key, the details page can send one request to activate usage stats. Get it at opencode.ai/settings → API Keys.
CommandCode credentials
Needs an API Key (for balance). Session Cookie (optional) for usage records, copied from browser DevTools. Balance works without it.
Generate at Settings → API Keys
Session Cookie (optional)
F12 → Cookies → commandcode.ai → select all & paste
How to get API Key and Cookie?
Enter API Key
Credentials are encrypted with Android Keystore (AES-256 GCM) and stored in local DataStore.
Update
Codex / ChatGPT credentials
OAuth login fetches credentials automatically. You can also paste auth.json manually.
🔐 OAuth login (recommended)
── or import manually ──
Full auth.json content
Paste the full {"tokens": {...}} JSON
Import & save
How to get auth.json?
Paste session
Google OAuth blocks the in-app WebView, so log in with a browser and paste the cookie here.
Cookie string
Save cookie
Empty response body
Response root is not a JSON object
No usage window data found
Model list not found
Model list is empty
Response format is abnormal
Weekly
Spark
Model call count
Cached data · %1$s
Showing the last successfully fetched balance
%1$s%2$s spent this month
Balance breakdown
Granted balance
Top-ups
Loading model list...
Select model
Refresh model list
Activating...
Retry usage activation
⚡ One-tap usage activation
Refresh balance
Log in again
Configure credential
Top up / Recharge
Top up / Subscribe
Current balance
5h live usage
Monthly balance
Session usage
Please select a model
Error details:
API response:
Copy
*** (length %1$d) ***
%1$s***%2$s (length %3$d)
Bad cookie format, expected name1=value1; name2=value2
%1$d cookies saved
Please paste the auth.json content
auth.json is missing access_token or refresh_token
Codex credential saved; token auto-refreshes when expiring
Parse failed: %1$s
Connected! Balance: $%1$s
API Key saved
Connected! Session: %1$s%% · %2$s
Credential deleted
Clipboard is empty
Recognized workspaceId and auth cookie
Recognized workspaceId, please paste the auth cookie too
Recognized auth cookie, please paste the workspaceId too
No valid credential recognized
Codex OAuth Login
Exchanging token...
Retry
Headless login
1. Tap "Open in browser" or copy the link below to a browser\n2. Complete login & authorization on the OpenAI page\n3. The browser redirects to a localhost address (page not loading is normal)\n4. Copy the full URL from the address bar and paste it below\n5. Tap "Submit callback URL"
Authorization link
Open in browser
Copy link
── paste the callback URL after login ──
Callback URL
http://localhost:1455/auth/callback?code=...
Submit callback URL
Regenerate auth link
Preparing authorization...
Token Activity
Daily
Weekly
Cumulative
OCGO Token Activity
OCGO daily Token usage heatmap
Token Activity
No data yet
Less
More
Token activity heatmap, %1$d days
Token activity heatmap, %1$d weeks
Select year
Recent 365 days
Total tokens
Peak tokens
Current streak
Longest streak
- %1$d day
- %1$d days
%1$s used %2$s tokens
%1$s used %2$s tokens
Profile
Nickname
Email
Not set
Edit
Edit Profile
Change Avatar
Choose from gallery
Remove avatar
Save
Cancel
Activity Insights
Total requests
- %1$d request
- %1$d requests
Peak hours
%1$d–%2$d
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
API Key
Workspace ID
Detecting site…
API Key: tracks usage for this key only
Panel login: full-account usage stats; unlocks key management, grouping and redemption
One-click account login (recommended)
Logging in…
Web login (fallback, e.g. if 2FA is enabled)
Email login
API key login
2FA code (optional)
No usage data yet — pull to refresh
Panel management
Load API Key list
No API Key yet
New Key
Redeem code
New API Key
Key name
Group (optional, default if unselected)
No group available
✓ API Key created
This Key is shown only once — copy it now:
Copy & close
Redeem code
Switch group
Group
Default group
never used
last %1$s
%1$s (ID %2$d)
API Key copied
⚠ Low balance: $%1$s left — top up or redeem a code
(all-time, not limited to the selected period)
API keys
Email login
API key login
%1$d calls
Balance
By model
By API key
No API key usage in this period
Not used in this period
Spend $%1$.2f
Delete API key
Delete "%1$s"? This cannot be undone and any client using this key will stop working.
Chart shows the whole account (no per-model breakdown)
App update
Current version %1$s (%2$d)
Check for updates
Checking…
You are on the latest version
New version %1$s available
Download & install
Downloading %1$d%%
Download finished
Install
Please allow installing apps from unknown sources
Open settings
Update failed: %1$s