tokenmix 1.4.15 → 1.4.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -14,6 +14,19 @@ Behind the zero-config CLI is a gateway built to be the **honest, transparent**
14
14
  - **One key, every protocol.** OpenAI Chat Completions, Anthropic Messages, and the Responses API — all on one account, which is why every agent below (terminal and editor alike) runs on a single balance.
15
15
  - **Non-invasive by design.** Configuring an agent never clobbers your setup: your Claude settings are backed up and restored, Codex's provider is injected at launch (your `~/.codex/config.toml` stays untouched), and `tokenmix logout` reverts everything. Credentials are stored locally at `0600`.
16
16
 
17
+ ## TokenMix vs. the grey market
18
+
19
+ The "中转站" proxy market is cheap but trust-broken — independent audits have documented model substitution, credential theft, and prompt-data resale. TokenMix is built to be the honest alternative, and every row below is enforced in code, not just promised:
20
+
21
+ | | Typical grey-market proxy | TokenMix |
22
+ |---|---|---|
23
+ | **The model you get** | Sells "Opus", serves Haiku / Qwen | The model you name is the model that runs — no fallback to a cheaper one |
24
+ | **Billing** | Opaque "credits", no real-usage detail | Real upstream usage at the public price, to micro-USD, auditable |
25
+ | **Cache savings** | Pocketed by the proxy | Passed back to you at the discounted rate, automatically |
26
+ | **Your credentials** | Keys harvested and resold | Stored locally at `0600`, injected non-invasively, reverted on `logout` |
27
+
28
+ Versus a mainstream gateway like [OpenRouter](https://openrouter.ai), the difference is focus, not a knock on them: TokenMix is built for Asia/China BYOK users — a six-language CLI and dashboard, networking tuned for slow or restricted connections, and one balance across the Anthropic, OpenAI, and Responses protocols.
29
+
17
30
  ## Quick Start
18
31
 
19
32
  ```bash
@@ -10,6 +10,7 @@ export async function welcomeCommand() {
10
10
  const row = (cmd, desc) => ' ' + chalk.cyan(cmd.padEnd(21)) + chalk.dim(desc);
11
11
  console.log();
12
12
  console.log(' ' + chalk.bold.cyan('TokenMix') + chalk.dim(' — ' + t('welcome.tagline')));
13
+ console.log(' ' + chalk.green('✓') + ' ' + t('welcome.why'));
13
14
  console.log();
14
15
  if (loggedIn) {
15
16
  console.log(' ' + chalk.green('✓') + ' ' + t('welcome.loggedIn'));
@@ -8,6 +8,7 @@ export const en = {
8
8
  'common.notLoggedIn': 'Not logged in. Run `tokenmix login` first.',
9
9
  // welcome screen (bare `tokenmix`, no args — onboarding for first-time users)
10
10
  'welcome.tagline': 'one account, 160+ models, every open-source coding agent',
11
+ 'welcome.why': 'The model you pick is the model you get — no silent swaps, billed at real usage.',
11
12
  'welcome.start': 'Get started:',
12
13
  'welcome.s1': 'log in (opens a browser, ~10s)',
13
14
  'welcome.s2': 'see all 11 supported agents',
@@ -184,6 +185,7 @@ export const en = {
184
185
  export const zh = {
185
186
  'common.notLoggedIn': '未登录,请先运行 `tokenmix login`。',
186
187
  'welcome.tagline': '一个账户、160+ 模型、对接所有开源编程 agent',
188
+ 'welcome.why': '你选的模型就是你用的模型 —— 不偷换、不降级,按真实用量计费。',
187
189
  'welcome.start': '快速开始:',
188
190
  'welcome.s1': '登录(打开浏览器,约 10 秒)',
189
191
  'welcome.s2': '查看支持的 11 个 agent',
@@ -353,6 +355,7 @@ export const zh = {
353
355
  export const ja = {
354
356
  'common.notLoggedIn': 'ログインしていません。まず `tokenmix login` を実行してください。',
355
357
  'welcome.tagline': '1 つのアカウントで 160+ モデル、あらゆるオープンソース・コーディング agent に対応',
358
+ 'welcome.why': '選んだモデルがそのまま使われます —— すり替えなし、実使用量で課金。',
356
359
  'welcome.start': 'はじめに:',
357
360
  'welcome.s1': 'ログイン(ブラウザが開きます、約 10 秒)',
358
361
  'welcome.s2': 'サポートされている 11 の agent を表示',
@@ -507,6 +510,7 @@ export const ja = {
507
510
  export const ko = {
508
511
  'common.notLoggedIn': '로그인되어 있지 않습니다. 먼저 `tokenmix login`을 실행하세요.',
509
512
  'welcome.tagline': '하나의 계정으로 160+ 모델, 모든 오픈소스 코딩 agent 지원',
513
+ 'welcome.why': '선택한 모델 그대로 실행됩니다 —— 몰래 바꾸지 않고 실사용량으로 과금합니다.',
510
514
  'welcome.start': '시작하기:',
511
515
  'welcome.s1': '로그인 (브라우저가 열립니다, 약 10초)',
512
516
  'welcome.s2': '지원되는 11개 agent 보기',
@@ -661,6 +665,7 @@ export const ko = {
661
665
  export const es = {
662
666
  'common.notLoggedIn': 'No has iniciado sesión. Ejecuta `tokenmix login` primero.',
663
667
  'welcome.tagline': 'una cuenta, 160+ modelos, todos los agentes de programación de código abierto',
668
+ 'welcome.why': 'El modelo que eliges es el que usas: sin cambios ocultos, facturado por uso real.',
664
669
  'welcome.start': 'Empezar:',
665
670
  'welcome.s1': 'inicia sesión (abre el navegador, ~10 s)',
666
671
  'welcome.s2': 've los 11 agentes compatibles',
@@ -815,6 +820,7 @@ export const es = {
815
820
  export const fr = {
816
821
  'common.notLoggedIn': 'Non connecté. Exécutez d’abord `tokenmix login`.',
817
822
  'welcome.tagline': 'un seul compte, 160+ modèles, tous les agents de codage open source',
823
+ 'welcome.why': 'Le modèle que vous choisissez est celui que vous utilisez — sans substitution, facturé à l’usage réel.',
818
824
  'welcome.start': 'Démarrer :',
819
825
  'welcome.s1': 'connectez-vous (ouvre un navigateur, ~10 s)',
820
826
  'welcome.s2': 'voir les 11 agents pris en charge',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tokenmix",
3
- "version": "1.4.15",
3
+ "version": "1.4.16",
4
4
  "description": "Zero-config CLI to use any open-source coding agent with TokenMix as the unified LLM backend.",
5
5
  "type": "module",
6
6
  "bin": {