🌐 English · All languages
Claude hesabınızı 59–70% azaldın — həcmli konteksti sıx PNG səhifələri kimi render edərək, eyni məzmun, tokenlərin cüzi hissəsində.
Modellər mətni token üzrə, amma şəkli ölçüləri üzrə hesablayır — içindəki mətnin miqdarına görə yox.
OmniRoute ailəsinin bir hissəsidir · 🌐 Bütün dillər
| göstərici | nəticə | qəbz |
|---|---|---|
| Uçdan-uca hesab azalması | 59–70% | istehsalat izi, 13.709 sorğu |
| Çevrilmiş blok başına token | 10× az (28.080 simvol: 14.040 → 1.460 token) | billing sweep |
| Billinq düsturunun dəqiqliyi | 2 model × 2 səviyyədə 22 count_tokens sınağında sıfır qalıq |
benchmarks/billing-sweep/results/ |
| İstehsalat konfiqurasiyasında dəqiq oxu | Claude Fable 5-də 30/30 (100%) | density frontier |
| ~300 oxu sınağında sükutlu uydurmalar | 0 — hər buraxılış ILEGIVEL kimi imtina edir |
benchmarks/density-frontier/results/ |
Model qiymətləndirmə cədvəli (sıx renderləri oxuya bilirmi? qol başına n=30, deterministik qiymətləndirmə):
| model | oxu | hökm |
|---|---|---|
| Claude Fable 5 | 100% dəqiq | ✅ istehsalat hədəfi |
| Claude Opus 4.8 | 4× qlif ölçüsündə 77–87% | |
| GPT-5.5 | 0/60 — və cəhd edərkən cavablarını ~40× şişirdir | ❌ qapı tərəfindən bloklanıb, sübutla |
| Gemini 2.5-flash | 0/26 — və imtina etmək əvəzinə uydurur | ❌ bloklanıb (qismən test, kvota ilə məhdudlaşdırılıb) |
Üstünlük bu gün Fable-ə xasdır — digər görmə kodlaşdırıcıları hələ sıx qlifləri həll edə bilmir. Benchmark hərnəsi hər hansı yeni modeli bir əmrlə yenidən sınayır.
Hər uzunmüddətli agent sessiyası hər sorğuda eyni ölü yükü daşıyır: system prompt, alət sənədləri və köhnə tarixçə — hər növbədə yenidən, token üzrə hesablanır. OmniGlyph həmin həcmli hissələri maşınınızdan çıxmazdan əvvəl sıx PNG səhifələrinə çevirən lokal proksidir:
- Həqiqi billinq riyaziyyatı, evristika deyil — provayderin əsl şəkil-token düsturunu hesablayır (sıfır qalığa qədər ölçülüb) və yalnız riyaziyyat udanda çevirir.
- Dizayn üzrə fail-closed — sıx renderləri oxuya bilməyən modellər benchmark qəbzləri ilə qapı tərəfindən bloklanır. Sükutlu keyfiyyət itkisi yoxdur.
- Məxfi və lokal-öncəlikli — yenidənyazma
127.0.0.1-də baş verir; heç bir əlavə məlumat heç yerə göndərilmir. - Təkrarlanabilir — yuxarıdakı hər rəqəmin
benchmarks/*/results/-da qəbzi var, bir əmrlə yenidən işə salına bilir.
npx omniglyph # proksi 127.0.0.1:47821-də
ANTHROPIC_BASE_URL=http://127.0.0.1:47821 claude # Claude Code-u ona yönləndirinHər iki halda işləyir:
- API açarı (token üzrə ödəniş): hesabınız uçdan-uca 59–70% azalır.
- Abunə sessiyası: daha az ödəmirsiniz, amma istifadə limitləri tokenlərlə sayılır — deməli limitləriniz ~2–3× uzanır.
Panel http://127.0.0.1:47821/ ünvanındadır: qənaət edilən tokenlər, hər mətn→şəkil çevrilməsi yan-yana, öldürmə açarı, canlı model çipləri. Cavablar normal axır — yalnız sorğu sıxılır, heç vaxt modelin çıxışı yox.
Start the proxy in one terminal, then point the client at it.
Claude Code CLI (macOS/Linux):
npx omniglyph
ANTHROPIC_BASE_URL=http://127.0.0.1:47821 claudeClaude Code CLI (Windows PowerShell):
npx omniglyph
$env:ANTHROPIC_BASE_URL = "http://127.0.0.1:47821"
claudeClaude Desktop uses the same ANTHROPIC_BASE_URL environment variable for its bundled Claude Code runtime — start omniglyph first, then launch Claude Desktop from an environment where ANTHROPIC_BASE_URL is set to http://127.0.0.1:47821.
Paketin daxilində tam lokal panel gəlir — oflayn, tək fayl, sıfır xarici sorğu. Sorğular axarkən SSE üzərindən canlı yenilənən altı səhifə:
- Ümumi baxış — missiya nəzarəti: qənaət %, qənaət edilən $, gecikmə p95, keş uğurları, xətalar, canlı axın.
- Canlı Axın — boru xəttinin node qrafiki kimi: müştəri → qapı → renderer / keçid → API, hər həqiqi sorğu üçün bir hissəcik.
- Telemetriya — token/$ odometri və canlı sorğu zaman xətti; hər hansı sorğuya klikləyərək dəqiq hansı hissələrin şəklə çevrildiyini görün və hər səhifənin arxasındakı mənbə mətnini oxuyun.
- Benchmarklar —
benchmarks/*/results/-dan render olunan sınaq qəbzləri, hər model·konfiqurasiya eksperimenti üçün bir sətir, və benchmarkları UI-dan işə salın:$0dry-run-lar öz çıxışlarını canlı axıdır; canlı işlər isə API açarınızın üstəlik açıq xərc təsdiqi arxasında qapalı qalır. - Sessiyalar / Tarixçə — qənaət edilən tokenlərə görə ən yaxşı sessiyalar və diskdəki hər hadisə.
| Canlı Axın | Benchmarklar |
|---|---|
![]() |
![]() |
həcmli sorğu bloku ──► sərfəlilik qapısı ──► yenidən düzülüş + render (1-bit 5×8 atlas)
(dəqiq billinq riyaziyyatı) ──► 1568×728 PNG səhifələr ──► geri calanır, keşə dost
- Billinq çevirmədən əvvəl dəqiq hesablanır: Anthropic hər şəkil üçün
⌈w/28⌉ × ⌈h/28⌉ + 4token hesablayır (28 px yamaqlar — sıfır qalığa qədər ölçülüb). Tam səhifə 1.460 token üçün 28.080 simvol daşıyır ≈ 19 simvol/token, sıx mətn üçün isə ~2 simvol/token. Qapı yalnız riyaziyyat udanda çevirir. - Nə çevrilir: statik system prompt + alət sənədləri, köhnə yığılmış tarixçə, böyük alət çıxışları.
- Nə heç vaxt çevrilmir: mesajlarınız, son növbələr, modelin çıxışı, seyrək nəsr, bayt-dəqiq dəyərlər (hash/ID-lər mətn kimi yanında gedir) və oxu benchmarkını keçməmiş hər hansı model.
Proksinin hər sorğuda etdiyi hər şey həm də sənədləşdirilmiş, import edilə bilən API kimi mövcuddur:
import { renderTextToImages, transformAnthropicMessages } from "omniglyph";
// Hər hansı mətni sıx 1-bit PNG səhifələrinə render edin
const { pages } = await renderTextToImages(bigToolOutput, { reflow: true });
// pages[i].png: Uint8Array · pages[i].width × pages[i].height
// Və ya tam sorğu transformasiyasını özünüz işə salın — qapı, billinq riyaziyyatı və hamısı
const { body, applied, reason } = await transformAnthropicMessages({
body: requestBytes, // xam /v1/messages JSON gövdəsi
model: "claude-fable-5",
});options.keepSharp(block) blokları mətn kimi sabitləyir; options.emitRecoverable şəklə çevrilmiş blokların orijinallarını qaytarır. Dəqiq billinq riyaziyyatı paket kökündə də mövcuddur (anthropicImageTokens, resolveAnthropicVisionTier, openAIVisionTokens) — OmniRoute məhz bunu istifadə edir. Təmiz JS runtime (Node və edge/Workers). Tam səth: src/core/index.ts.
Claude Code-da deyilsiniz? Konteksti lokal olaraq PNG səhifələrinə render edin və onları Cursor, ChatGPT və ya şəkil yükləmələrini qəbul edən istənilən çata yapışdırın. Proksi yox, API açarı yox, qoşulmuş hesab yox:
npx omniglyph export --include "*.ts" src/ # render a folder to image pages
cat big.log | npx omniglyph export --stdin # …or pipe any text throughÇata atmaq üçün hər şeyi bir qovluqda alırsınız:
OmniGlyph-export-<hash>/
page-001.png … the rendered image pages — attach these
factsheet.txt verbatim precision tokens (paths, SHAs, ids, numbers)
prompt.txt a paste-ready instruction that points the model at the pages
manifest.json metadata + the text-vs-image token report (% saved)
--git commit edilməmiş diff-inizi render edir, --diff <ref> bir commit aralığını, --open isə qovluğu üzə çıxarır (macOS). Hamısı sizin maşınınızda işləyir — eksport yolu heç vaxt proksini başlatmır və heç vaxt modelə müraciət etmir. Bütün bayraqlar üçün omniglyph export --help işə salın.
- Bu, itkilidir. Şəkillərdən bayt-dəqiq bərpa təbiətcə etibarlı deyil. Tətbiq olunan tədbirlər: dəqiq identifikatorlar şəklin yanında mətn kimi gedir və ölçülən istehsalat konfiqurasiyası sıfır sükutlu uydurma verdi — uğursuz oxular imtina edir.
- Bu gün yalnız Fable 5 təsdiqlənib, qəbzlərlə. GPT-5.5 və Gemini 2.5-flash ölçülə bilən şəkildə sıx renderləri oxuya bilmir; Opus 4.8-ə 4× böyük qliflər lazımdır. Qapı bunu tətbiq edir.
- Bir billinq tələsi tapıb ondan qaçdıq: yüksək çözünürlüklü şəkil səviyyəsi hər səhifə üçün 3,3× baha başa gəlir, amma görmə kodlaşdırıcısı əlavə çözünürlüyü almır — daha böyük səhifələr daha pis oxunur. Ölçülüb, docs/benchmarks/BENCHMARKS.md-də sənədləşdirilib, aktiv edilməyib.
- Qiymətlər dəyişir; davamlı göstərici token azalmasıdır, proksi bunu hər sorğu üçün pulsuz
count_tokensəks-faktına qarşı qeyd edir.
Sessiyanın ortasında aktivləşdirdim və istifadə sıçradı — niyə? OmniGlyph olmadan işləyən sessiyanın bütün prefiksi Anthropic-də mətn kimi 0,1× oxuma tarifi ilə keşlənib; şəkilli ilk sorğu bunların hamısını tək bir promptda 1,25× ilə yeni keş yazısı kimi yenidən ödətdirərdi. Proksi bundan qoruyur: heç vaxt şəkilə çevirmədiyi sessiyanın bu birdəfəlik xərcini zərərsizlik qapısına daxil edir və yalnız hələ də sərfəli olduqda şəkillərə keçir — əks halda sessiya mətn olaraq qalır və qənaət növbəti yeni sessiyanızdan başlayır.
59–70% uçdan-uca rəqəmdir, yoxsa yalnız toxunduğu sorğularda? Uçdan-uca — bütün hesab. Əksər sıxılma alətləri qənaəti yalnız toxunduqları hissədə bildirir, bu da rəqəmi şişirdir. Bizim məxrəcimiz hər sorğudur: qapının düzgün toxunmadan buraxdığı kiçik sorğular, bütün keş yazma və oxumaları, və bütün çıxış tokenləri (proksi bunları heç vaxt sıxmır). Yalnız-sıxılmış rəqəm daha yüksək çıxır və ayrıca qeyd olunur, heç vaxt başlıq kimi yox.
Qənaət necə ölçülür?
Eyni sorğunun hər iki tərəfi, eyni anda. Hər /v1/messages POST-u üçün proksi orijinal, sıxılmamış gövdə üzərində pulsuz bir count_tokens sınağı (əks-fakt) işə salır — real yönləndirmə ilə paralel — və provayderin faktiki hesabladığı istifadə blokunu cavabdan oxuyur; hər ikisi eyni hadisə sətrinə düşür. Keş qiymətləndirməsi hər iki tərəfə eyni tətbiq olunur, ona görə keş endirimi bir-birini ləğv edir və "qənaət" kimi ikiqat hesablana bilmir. Düstur src/core/baseline.ts-də yerləşir; öz hadisə jurnalınızdan yenidən çıxara bilərsiniz.
Niyə xəta oxu səhvi deyil, uydurma sayılır? Çünki modelin görməsi OCR deyil: səhifə yamaq (patch) embeddinglərinə çevrilir, heç vaxt ayrıca simvollara yox, ona görə hər qlif üçün ucadan uğursuz olacaq bir etibarlılıq göstəricisi yoxdur — piksellər bir qlifi qeyri-müəyyən buraxanda, dil prioru boşluğu inandırıcı bir şeylə doldurur. Məhz bu mexanizm OmniGlyph-i bu məsələdə fail-closed edir: bayt-dəqiq dəyərlər həmişə şəklin yanında mətn kimi gedir, səhv oxuyan modellər qapı tərəfindən bloklanır, və ölçülən istehsalat konfiqurasiyası ~300 oxu sınağında sıfır sükutlu uydurma verdi — uğursuz oxular imtina edir.
Bayt-dəqiq iş (hash-lər, ID-lər, sirlər) haqqında nə demək olar? Son növbələr və dəqiq identifikatorlar dizayn üzrə mətn olaraq qalır. Tamamilə bayt-dəqiq olan iş yükləri üçün onları icazə siyahısında olmayan bir modelə yönləndirin (məsələn, başqa Claude modelində subagent) — icazə siyahısından kənarda olan hər şey bayt-eyni, toxunulmadan keçir.
DeepSeek-OCR bunun işlədiyini artıq sübut etmədimi? O, kanalın işlədiyini sübut etdi — bu iş üçün öyrədilmiş encoder/decoder cütü ilə. Şübhəçilik heç bir hazır istehsalat modelinin sıx renderləri oxuya bilmədiyi dövrdən qalıb; bu dəyişdi, və yuxarıdakı model qiymətləndirmə cədvəli bu gün onları kimin oxuduğunu, qəbzlərlə göstərir. Benchmark hərnəsi hər hansı yeni modeli bir əmrlə yenidən sınayır — qapı hipe deyil, məlumatı izləyir.
Onu Claude Code olmadan istifadə edə bilərəmmi — Cursor, ChatGPT, sadə pipe?
Bəli, iki yolla. Proksi kimi o, API baza URL-ni təyin etməyə imkan verən istənilən müştəri ilə işləyir (ANTHROPIC_BASE_URL və ya OpenAI baza URL-i) — Claude Code, öz skriptləriniz, istənilən HTTP şey. Və proksi edə bilməyən alətlər üçün yuxarıdakı Oflayn eksport konteksti əllə yapışdırdığınız PNG səhifələrinə render edir — omniglyph export --stdin hətta birbaşa Unix pipe-dan oxuyur.
O, mətni əslində necə şəklə çevirir? O, mətni yenidən düzür və onu 1-bit 5×8 piksel qlif atlası ilə sıx 1568×728 PNG səhifələrinə çəkir — hər piksel üçün bir bit, anti-aliasing yoxdur, ona görə model səhifəni ölçüləri üzrə hesablayır, içində neçə simvol olduğuna görə yox. Yuxarıdakı Necə işləyir boru xəttini göstərir; benchmark sənədi isə həndəsəni və nə üçün daha sıxın həmişə daha ucuz olmadığını izah edir.
pnpm install && pnpm test # tam paket
node benchmarks/billing-sweep/run.mjs --dry-run # billinq proqnozları, $0
pnpm exec tsx benchmarks/density-frontier/run.ts --dry-run # xərc cədvəli, $0
# açarlarla: ANTHROPIC_API_KEY / OPENAI_API_KEY / GEMINI_API_KEY (və ya Claude Code abunəsi üçün --via-cli)Tam metodologiya və hər nəticə cədvəli: docs/benchmarks/BENCHMARKS.md. Xam cavab-başına qəbzlər: benchmarks/*/results/*.jsonl.
OmniGlyph həmçinin OmniRoute — pulsuz AI şlüzü — daxilində doğma sıxılma mühərriki kimi çıxış edir. Orada omniglyph mühərriki kimi işləyir (tək rejim və ya digər mühərriklərlə yığılmış), fail-closed qapılar və şəkil-şüurlu token uçotu ilə.
| qat | texnologiya |
|---|---|
| Dil | TypeScript (strict), ESM |
| İşləmə mühiti | Node ≥18 · Cloudflare Workers (wrangler.toml) |
| Render | öz 1-bit qlif atlası (Spleen/Unifont-əsaslı, lisenziyalar assets/-də) → PNG |
| Testlər | Vitest — TDD, üstəlik docs-integrity və rebrand qoruyucuları |
| Benchmarklar | JSONL qəbzləri ilə benchmarks/ hərnəsləri (billing-sweep, density-frontier) |
| yol | nə |
|---|---|
src/ |
proksi: transformasiya boru xətti, provayder üzrə dəqiq billinq, renderer, hostlar (Node + Cloudflare Workers) |
benchmarks/ |
yuxarıdakı hər rəqəmi yaradan hərnəslər — yenidən işə salına bilər |
docs/ |
BENCHMARKS · ARCHITECTURE · ROADMAP |
- 🐛 Issues — xətalar və funksiya istəkləri
- 🔒 SECURITY.md — zəiflik bildirişləri
- 🤝 CONTRIBUTING.md — ciddi TDD + iddiadan-əvvəl-ölçmə
- 📜 CHANGELOG.md · CODE_OF_CONDUCT.md
OmniGlyph məhz bir layihənin çiyinləri üstündə dayanır — bu bölmə bizim daimi təşəkkürümüzdür.
| Layihə | OmniGlyph-ə necə təsir etdi |
|---|---|
| pxpipe · teamchong | Bütün bu layihənin qurulduğu kəşf. pxpipe qəbzlərlə sübut etdi ki, istehsalat LLM-inin görmə kanalı sıx mətn kontekstini token dəyərinin bir hissəsi qarşılığında daşıya bilər — və çevrilmə hər sorğuda dəqiq billinq riyaziyyatı ilə qərarlaşdırılmalıdır, heç vaxt hissiyata görə yox. Sıx 1-bit render, sərfəlilik qapısı, count_tokens əks-faktı, fail-closed model icazə siyahısı və "iddia etməzdən əvvəl ölç" sənədləşdirmə mədəniyyəti hamısı orada ilk dəfə tətbiq olundu. OmniGlyph birbaşa həmin kod bazasından törəyib (MIT — orijinal müəllif hüququ sətri LICENSE faylımızda qalır). |
| Spleen · Frederic Cambus | Sıx 1-bit qlif atlasımızın törədiyi 5×8 bitmap şrift ailəsi (lisenziya assets/-də). |
| GNU Unifont · Unifoundry | Eyni atlasda Spleen-in əhatə dairəsindən kənarda qalan qliflər üçün örtük (lisenziya assets/-də). |
Əgər OmniGlyph sizə faydalı olubsa, əsl mənbəyə də ulduz qoyun — kəşf onlarındır. 🙏
MIT — bax LICENSE.





