Tokens CLI হলো একটাই JavaScript file, যা আপনার coding agent-গুলোকে Tokens-এর সঙ্গে জুড়ে দেয়। একটা setup command browser-এ আপনাকে Sign in করায়, key তৈরি করে, default model বেছে নিতে দেয়, আর OpenCode, Claude Code, Codex CLI ও Crush-এর config লিখে দেয়। Node.js 18 বা নতুন সংস্করণ লাগে, আর কোনো dependency নেই।
Tokens CLI install করুন ও চালান#
Global-ভাবে কিছু install করতে হয় না। File-টা download করে Node দিয়ে চালান:
curl -fsSL https://tokens.bd/cli/tokens.mjs -o tokens.mjs && node tokens.mjs setup --base-url https://tokens.bdiwr https://tokens.bd/cli/tokens.mjs -OutFile tokens.mjs; node tokens.mjs setup --base-url https://tokens.bdএটা সাধারণ, পড়ার মতো JavaScript (প্রায় 650 লাইন)। Download করা script চালাতে সতর্ক থাকা উচিত, আর আপনার থাকাই ভালো। তাই ওই command-এর দ্বিতীয় অংশ চলার আগে tokens.mjs খুলে একবার পড়ে নিন।
শুরুর আগে দেখুন আপনার অ্যাকাউন্টে plan আছে অথবা Wallet-এ ব্যালান্স আছে। খালি অ্যাকাউন্টে CLI কোনো কাজের কিছু করতে পারে না।
setup ধাপে ধাপে কী করে#
1. Browser দিয়ে Sign in করায়#
--key না দিলে CLI একটা device login শুরু করে। এটা একটা link আর ABCD-EFGH-এর মতো একটা code দেখায়, আর link-টা আপনার browser-এ খুলে দেয়। যে পাতা খুলবে (/dashboard/connect/cli), সেখানকার code আপনার terminal-এর code-এর সঙ্গে মেলে কি না দেখে approve করুন। CLI অপেক্ষা করে, approve হলে CLI (<your platform and Node version>) নামে একটা নতুন API key পায়। এটা সাধারণ key: /dashboard/keys-এ দেখতে পাবেন, আর চাইলে সেখানেই revoke করতে পারবেন।
যে machine-এ browser নেই (SSH, container), সেখানে --no-browser যোগ করুন, আর দেখানো link-টা অন্য যেকোনো device-এ খুলুন যেখানে আপনি Sign in করা।
2. Model-এর তালিকা দেখায়, default জিজ্ঞেস করে#
CLI gateway-র base URL পড়ে https://tokens.bd/api/gateway/config থেকে, তারপর key দিয়ে GET /v1/models call করে। প্রথম 10টা model দেখিয়ে একটা বাছতে বলে; Enter চাপলে প্রথমটা নেয়। প্রথম 10-এর বাইরের কোনো model চাইলে --model দিয়ে দিন।
3. Credentials সেভ করে#
Base URL আর key সেভ হয় এখানে:
- macOS / Linux:
~/.config/tokens/credentials.json(অথবা$XDG_CONFIG_HOME/tokens/credentials.json), শুধু আপনিই পড়তে পারবেন (mode 600) - Windows:
%APPDATA%\tokens\credentials.json
পরে usage আর models এই file ব্যবহার করে, তাই key আর আলাদা করে দিতে হয় না।
4. আপনার agent খোঁজে, আর কী বদলাবে তা দেখায়#
OpenCode, Claude Code, Codex CLI আর Crush খুঁজে দেখে, তাদের config folder দিয়ে অথবা PATH-এ থাকা program দিয়ে। কোন কোন file বদলাবে সেটা হুবহু দেখায় আর জিজ্ঞেস করে Continue? [Y/n]। আপনি উত্তর না দেওয়া পর্যন্ত কিছু লেখা হয় না।
| Agent | File | কী লেখা হয় |
|---|---|---|
| OpenCode | ~/.config/opencode/opencode.json | আপনার key-সহ একটা tokens provider (@ai-sdk/openai-compatible), আর model সেট হয় tokens/<model> |
| Claude Code | ~/.claude/settings.json | env.ANTHROPIC_BASE_URL, env.ANTHROPIC_AUTH_TOKEN আর env.ANTHROPIC_MODEL |
| Codex CLI | ~/.codex/config.toml (অথবা $CODEX_HOME/config.toml) | চিহ্ন দেওয়া একটা block, যাতে [model_providers.tokens] (env_key = "TOKENS_API_KEY", wire_api = "responses") আর [profiles.tokens] |
| Crush | ~/.config/crush/crush.json | আপনার key ও model-সহ openai-compat ধরনের একটা tokens provider |
JSON file-গুলো merge হয়, তাই আপনার বাকি সেটিংস থেকে যায়। Codex-এর block থাকে # >>> tokens আর # <<< tokens marker-এর মাঝখানে, আর আবার setup চালালে সেটা একই জায়গায় বদলে যায়।
5. আগে প্রতিটা file-এর backup নেয়#
কোনো file বদলানোর আগে CLI সেটা <file>.tokens-backup-<timestamp> নামে copy করে রাখে, যেমন settings.json.tokens-backup-2026-10-03T09-15-00-000Z। আগের অবস্থায় ফিরতে চাইলে backup-টা মূল file-এর ওপর copy করে দিন।
কোনো file নিরাপদে edit করা না গেলে (comment থাকা JSON, syntax error, বা এমন Codex config যাতে আগে থেকেই নিজের [model_providers.tokens] table আছে), CLI সেটা ছোঁয় না, skipped লিখে দেয়, আর আপনাকে /dashboard/connect?agent=<agent>-এর paste-in settings-এ যেতে বলে।
6. Codex CLI: একটা ধাপ হাতে করতে হবে#
Codex key পড়ে environment variable থেকে, তাই তার config file-এ কোনো secret থাকে না। Setup-এর পরে variable-টা আপনার shell profile-এ যোগ করুন, আর Codex চালান profile দিয়ে:
export TOKENS_API_KEY="tok_live_your_key"
codex --profile tokenssetx TOKENS_API_KEY "tok_live_your_key"
# open a new terminal, then:
codex --profile tokensCLI এই লাইনটা আপনার আসল key বসিয়ে ছাপিয়ে দেয়। আরও জানতে দেখুন Codex CLI।
Note
OpenCode, Claude Code আর Crush key রাখে আপনার home directory-র config file-এ। ওই file-গুলো dotfiles repository-তে commit করবেন না।
Command আর flag#
node tokens.mjs setup [--base-url URL] [--key KEY] [--model ID] [--agents opencode,claude,codex,crush]
[--yes] [--dry-run] [--no-browser]
node tokens.mjs usage [--json]
node tokens.mjs models
node tokens.mjs logout
node tokens.mjs version
node tokens.mjs help| Flag | কী করে |
|---|---|
--base-url URL | Tokens site, https://tokens.bd। TOKENS_BASE_URL set না থাকলে প্রথমবার দিতে হয়; এরপর সেভ থাকে। |
--key KEY | Browser login-এর বদলে আগের একটা key ব্যবহার করে। |
--model ID | Picker ছাড়াই default model ঠিক করে। Model-টা এমন হতে হবে যা key দিয়ে চালানো যায়। |
--agents LIST | শুধু এই agent-গুলো সেটআপ করে (opencode, claude, codex, crush), detect না হলেও। |
--yes | নিশ্চিত করার প্রশ্ন বাদ দেয়। Script-এ লাগে, কারণ সেখানে প্রশ্নের default উত্তর "no"। |
--dry-run | কোন কোন file লেখা হতো তা দেখায়, কিছু না লিখে এবং credentials সেভ না করে। |
--no-browser | Sign-in link খুলে না দিয়ে ছাপিয়ে দেয়। |
usage দেখায় আপনার plan, প্রতিটা usage window (progress bar আর reset হওয়ার সময়সহ), Wallet-এর ব্যালান্স, আর key-র cap ও allowed model। usage --json ছাপে GET /v1/tokens/usage-এর raw response (usage, limits and alerts দেখুন)। models ছাপে আপনার key যেসব model চালাতে পারে তাদের id, প্রতি লাইনে একটা।
Dry run-এও Sign in হয়
--dry-run কোনো file লেখে না, কিন্তু --key ছাড়া এটা তবুও browser login চালায়, আর তাতে একটা key তৈরি হয়ে যায়। কোনো পার্শ্বপ্রতিক্রিয়া ছাড়া preview দেখতে চাইলে সঙ্গে আগের একটা key দিন: node tokens.mjs setup --base-url https://tokens.bd --dry-run --key "$TOKENS_API_KEY"।
Environment variable#
| Variable | কীসের জন্য |
|---|---|
TOKENS_BASE_URL | --base-url না দিলে Base URL এখান থেকে নেয় |
TOKENS_API_KEY | --key না দিলে key এখান থেকে নেয়; সেভ করা credentials-এর চেয়ে এটা আগে ধরা হয় |
CLI key বাছে এই ক্রমে: --key, তারপর TOKENS_API_KEY, তারপর সেভ করা credentials file।
সমস্যা হলে#
"Your account has no models available yet. Subscribe or add funds first." Key কাজ করছে, কিন্তু কোনো model চালানোর অনুমতি নেই। /dashboard/billing-এ গিয়ে plan-এ সাবস্ক্রাইব করুন বা Wallet-এ টাকা যোগ করুন, তারপর আবার setup চালান।
"That API key was not accepted." Key-টা rotate বা revoke হয়ে গেছে, নয়তো ভুল টাইপ হয়েছে। --key ছাড়া setup চালিয়ে নতুন key নিন, অথবা দেখুন আপনার environment-এ থাকা পুরোনো কোনো TOKENS_API_KEY সেভ করা key-কে ঢেকে দিচ্ছে কি না।
কোনো file skipped দেখাচ্ছে। ওতে comment আছে, নয়তো format অপ্রত্যাশিত। ওই agent নিজে হাতে সেটআপ করুন /dashboard/connect বা তার guide থেকে: OpenCode, Claude Code, Codex CLI, Crush।
"No supported agents were found." তবুও আপনার key সেভ হয়ে গেছে। আগে agent install করুন, অথবা --agents claude-এর মতো করে একটাকে জোর করে দিন। Cursor, Cline, Zed, Aider আর অন্যগুলোর জন্য /dashboard/connect ব্যবহার করুন।
"The code expired" বা "Timed out waiting for approval." Code-টা সময়সীমার মধ্যে approve করুন (সর্বোচ্চ 15 মিনিট)। নতুন code পেতে command আবার চালান।
"Could not reach https://tokens.bd." আপনার network বা proxy দেখুন, আর status page দেখুন।
Log out আর uninstall#
node tokens.mjs logoutlogout শুধু এই কম্পিউটারে সেভ করা credentials file মুছে দেয়, আর কিছু না। Key চালু থাকে। সেটা বন্ধ করতে /dashboard/keys-এ গিয়ে revoke করুন।
আপনার agent থেকে Tokens সরাতে চাইলে .tokens-backup- copy-গুলো ফিরিয়ে দিন, অথবা CLI যা যোগ করেছিল তা মুছুন (OpenCode ও Crush-এর tokens provider, Claude Code-এর env-এর তিনটা ANTHROPIC_* entry, Codex-এর config.toml-এর চিহ্ন দেওয়া block)। তারপর tokens.mjs মুছুন, আর সব ঠিক আছে মনে হলে backup file-গুলোও। CLI আর কিছু disk-এ রেখে যায় না।