@monolex/codexmono
v1.0.4
Published
Professional monospace variable font family for multilingual development with CJK, Nerd, and Hermes emoji support
Maintainers
Readme
CodexMono™
A Philosophy of True Monospace Excellence
"CodexMono" is not just a font name—it's a commitment to strict monospace principles. When you see "XXX CodexMono", you know it follows the law of perfect fixed-width design.
The CodexMono Philosophy
This is not a font. This is a brick.
In the world of programming fonts, "monospace" has become diluted. Fonts claim to be monospace, yet break alignment in terminals. East Asian characters overflow. Arrows disappear. Box drawing fails.
CodexMono says: No more.
A Brick of Trust
One brick = 600 units = One unit of trust
Two bricks = 1200 units (East Asia characters)
Brick = Not just typography
Brick = Fundamental unit of trust
Brick = Space we agree on — togetherThe fundamental equation:
Alignment = Trust
Trust = Structure
Structure = Shared Reality
Therefore: Alignment = Shared RealitySMPC: Fundamental of Monolex
"Simplicity is Managed Part Chaos"
CodexMono is built on SMPC philosophy, the foundational principle of Monolex:
SIMPLE = MANAGED(PART(CHAOS))
Applied to CodexMono:
CHAOS: All possible glyphs in the universe
Infinite Variable Font possibilities
Entire Unicode spectrum
PART: Only actually needed characters
50+ essential glyphs selected
Practical symbols only
MANAGED: 600 units ONLY - absolute rule
Systematic transformation (65% scale, ±250/350)
Consistent methodology
SIMPLE: Immediately usable True Monospace
No Fallback needed
Perfect alignment automatically guaranteedWhy SMPC matters:
- Not random selection - Every glyph decision traceable to philosophy
- Constraint enables freedom - Absolute 600-unit rule creates perfect trust
- Philosophy IS code - Technical choices become meaningful through framework
The Trust Contract
To the AI:
> You were not built to guess.
> You were built to follow form.
Do not wrap.
Do not float.
Do not collapse margins.
Stay. In. The. Box.To the Human:
> You are not just writing.
> You are laying bricks.
A layout is not an afterthought.
It is a shape of memory.The Bridge Between Worlds:
CodexMono is the bridge between machine precision and human readability.
- Machine side: Exact units, no ambiguity
- Human side: Visual clarity, readable structure
- CodexMono: The only thing we can both hold, pixel by pixel
The Vision: AI LLM Protocol
CodexMono is bigger than a font. It's a protocol.
From Tool to Protocol
In the age of AI, consistent typography becomes the foundational protocol for human-AI interaction.
Traditional view:
Font = aesthetic tool for humans
Purpose = make text look goodCodexMono paradigm:
Font = communication protocol
Purpose = enable human-AI shared reality
Result = trust through structureAI LLM Protocol in Practice
Built on 600-unit increments ONLY (600, 1200, 1800...), CodexMono defines the standard where:
Traditional typography:
Human writes → AI reads (with guessing)
Layout breaks → AI interprets heuristically
Alignment lost → Meaning degradedCodexMono protocol:
Human writes in CodexMono → AI recognizes standard
600-unit bricks → AI preserves exactly
Perfect alignment → Meaning preserved perfectlyThe Future We Build
We envision a future where:
- "CodexMono" becomes the trust protocol for AI-human interaction
- Derivative fonts proudly display the suffix - joining the movement
- Terminal alignment is never broken - guaranteed by standard
- AI and humans share exact structure - no more guessing
- Typography becomes infrastructure - not just aesthetics
Philosophy proves: Standards can be beautiful. Constraints enable freedom. Trust scales through structure.
The Foundational Project of Monolex
CodexMono began as the foundational project that shaped Monolex itself.
For the ultimate experience, we recommend using Monolex AI Terminal:
┌─────────────────┐
│ CodexMono │
│ (600 units) │
└────────┬────────┘
│
┌─────────▼─────────┐
│ Trust Contract │
│ SMPC Philosophy │
└─────────┬─────────┘
│
┌─────────▼─────────┐
│ Monolex Terminal │
│ (AI Interaction) │
└─────────┬─────────┘
│
▼
Perfect Shared Reality
Human ←→ AI BridgeWhy Monolex?
- Built specifically for CodexMono's philosophy - Not adapted, but designed from the ground up
- AI-first terminal where Trust Contract is honored - Every alignment preserved, every brick respected
- Perfect environment for SMPC principles - Simplicity through managed complexity
- The complete experience - Font, terminal, and philosophy unified
Learn more: https://monolex.ai
Font Variants
CodexMono-EA (Recommended) ⭐
18 MB | 36,434 glyphs | Variable Font 100-800
✅ Korean Hangul: 11,172 chars
✅ Japanese Kana: ~200 chars
✅ Simplified Chinese: 20,976 chars (简体字)
✅ Latin/Extended: ~4,000 chars
✅ Special characters: ①②③, ㈜, AaPerfect for: International teams, AI terminals, multilingual development
CodexMono-Traditional
17 MB | 33,720 glyphs | Variable Font 100-800
✅ Traditional Chinese: 15,383 chars (繁體字)
✅ Korean + Japanese: Complete coveragePerfect for: Taiwan, Hong Kong, Macau development
CodexMono-KR (Korean/Japanese)
5.8 MB | 15,132 glyphs | Variable Font 100-800
✅ Korean Hangul: 11,172 chars (premium Pretendard quality)
✅ Japanese Kana: 189 chars
✅ No Chinese: Smaller file size (68% reduction)Perfect for: Korean/Japanese development, faster web loading
CodexMono (Latin Core)
648 KB | 4,007 glyphs | Variable Font 100-800
✅ Latin Extended: Full ASCII + accents
✅ Math symbols: ∑ ∏ ∫ ∂ ∇ ∞
✅ Greek alphabet: α-ω, Α-Ω
✅ Box drawing: ─│┌┐└┘├┤┬┴┼
✅ Programming: All coding symbolsPerfect for: English-only, web optimization (227 KB woff2)
Supplemental Distribution Families
CodexMono Nerd
2.66 MB | 14,400 characters | Variable Font 100-800
Nerd is the compatibility-layer build.
It exists for environments that want CodexMono plus terminal-symbol coverage, without stepping into the larger Hermes messenger family yet.
It preserves CodexMono's 600-unit single-cell rules for imported Nerd-compatible symbols.
Files:
fonts/nerd/ttf/CodexMono-Nerd.ttffonts/nerd/ttf/CodexMono-KR-Nerd.ttffonts/nerd/ttf/CodexMono-EA-Nerd.ttffonts/nerd/ttf/CodexMono-Traditional-Nerd.ttf
CodexMono Hermes
3.46 MB | 15,860 characters | Variable Font 100-800
Hermes is the messenger family: Nerd + Emoji + more Unicode.
The name is meant as the bridge between AI and Human, not as the label of one fixed emoji source.
The current 1.0.3 release builds Hermes on top of the Nerd compatibility layer and adds the first integrated emoji source layer, normalized to CodexMono's 1200-unit wide-cell rule for added emoji.
Files:
fonts/hermes/ttf/CodexMono-Hermes.ttffonts/hermes/ttf/CodexMono-KR-Hermes.ttffonts/hermes/ttf/CodexMono-EA-Hermes.ttffonts/hermes/ttf/CodexMono-Traditional-Hermes.ttf
WOFF2 artifacts for both Nerd and Hermes are bundled under fonts/nerd/woff2 and fonts/hermes/woff2.
Current build note:
1.0.3usesNoto Emojistatic weight300as the current upstream source for Hermes' integrated emoji layer.- Future Hermes builds may experiment with alternate emoji sources while keeping the public Hermes family identity.
Installation & Usage
Quick Install via npm (Recommended)
# Install globally
npm install -g @monolex/codexmono
# Open the command guide first
codexmono
# Install a specific bundled family
codexmono install core
codexmono install nerd
codexmono install hermes
codexmono install allThe CLI will:
- Show the command hub first instead of installing immediately
- Let you choose
core,nerd,hermes, orall - Detect your OS (macOS, Linux, Windows)
- Install fonts to the correct system directory when you run
install - Let you check status with
codexmono list all
Manual Installation
macOS
# Copy to user fonts
cp fonts/ttf/CodexMono-EA.ttf ~/Library/Fonts/
# Or system-wide (requires admin)
sudo cp fonts/ttf/CodexMono-EA.ttf /Library/Fonts/Linux
mkdir -p ~/.local/share/fonts
cp fonts/ttf/CodexMono-EA.ttf ~/.local/share/fonts/
fc-cache -f -vWindows
Right-click CodexMono-EA.ttf → Install
Configuration Examples
VS Code
{
"editor.fontFamily": "'CodexMono-EA', monospace",
"editor.fontSize": 14,
"editor.fontWeight": "400",
"terminal.integrated.fontFamily": "CodexMono-EA"
}iTerm2 (macOS)
Preferences → Profiles → Text
Font: CodexMono-EA
Size: 13ptJetBrains IDEs
Settings → Editor → Font
Font: CodexMono-EA
Size: 14Web Font Usage
Using woff2 (Recommended)
@font-face {
font-family: 'CodexMono';
src: url('fonts/woff2/CodexMono.woff2') format('woff2');
font-weight: 100 800;
font-display: swap;
}
code, pre {
font-family: 'CodexMono', monospace;
}Font Stack Strategy
/* Load Latin core first, East Asia as fallback */
@font-face {
font-family: 'CodexMono';
src: url('fonts/woff2/CodexMono.woff2') format('woff2');
font-weight: 100 800;
unicode-range: U+0000-00FF, U+0131, U+0152-0153;
}
@font-face {
font-family: 'CodexMono-EA';
src: url('fonts/woff2/CodexMono-EA.woff2') format('woff2');
font-weight: 100 800;
unicode-range: U+AC00-D7AF, U+4E00-9FFF;
}
body {
font-family: 'CodexMono', 'CodexMono-EA', monospace;
}File sizes for web:
CodexMono.woff2: 227 KB (Latin only)CodexMono-KR.woff2: 1.80 MB (+ Korean/Japanese)CodexMono-EA.woff2: 7.39 MB (+ Simplified Chinese)CodexMono-Traditional.woff2: 6.97 MB (+ Traditional Chinese)
Variable Font Technology
All versions support Variable Font
Weight axis: 100 to 800
100 - Thin
200 - ExtraLight
300 - Light
400 - Regular ← Default
500 - Medium
600 - SemiBold
700 - Bold
800 - ExtraBoldSingle file, infinite weights. Change font weight without loading separate files.
CSS usage:
font-family: 'CodexMono-EA';
font-weight: 400; /* Regular */
font-variation-settings: "wght" 450; /* Custom weight */The CodexMono Standard
What "CodexMono" Means
As a standalone font:
- Official implementation by Monolex.AI
- Trademark protected (CodexMono™)
- Reference implementation of the philosophy
As a suffix:
- Open for community use
- Indicates adherence to strict monospace principles
- Encouraged for derivative works
Join the Movement
Want to create "YourFont CodexMono"?
Requirements:
- Maintain strict fixed-width cells (600/1200 units)
- No proportional spacing
- Terminal compatibility priority
- Credit: "Follows CodexMono philosophy by Monolex.AI"
That's it. No permission needed. Just commitment to excellence.
Examples:
Noto Sans CodexMono → Follows strict monospace principles
Pretendard CodexMono → Commits to fixed-width perfection
[Your Font] CodexMono → Joins the movementWhen you use "CodexMono" in your font name, you commit to the Trust Contract.
🎯 Use Cases
AI Terminals ⭐ Primary Use Case
Monolex AI Terminal:
- Multilingual AI responses (Korean, Japanese, Chinese, English)
- Mathematical formulas (∑, ∫, ∂, ∇)
- Database queries (⋈ join operators)
- Terminal UI (perfect box drawing)
- Code blocks (all languages)
Perfect fit: CodexMono-EAProgramming
# Python with Korean comments
def calculate_평균(numbers: list) -> float:
"""숫자 리스트의 평균을 계산합니다."""
return sum(numbers) / len(numbers)// JavaScript with Japanese comments
const 変数 = "文字列"; // 変数の定義// Go with Chinese comments
func main() {
fmt.Println("Hello 世界") // 打印消息
}Terminal UIs
┌─────────────────────────┐
│ File Explorer │
├─────────────────────────┤
│ ├─ src/ │
│ │ ├─ main.rs │
│ │ └─ lib.rs │
│ └─ tests/ │
└─────────────────────────┘❓ FAQ
Q: Which version should I use?
A:
- Most users: CodexMono-EA (complete East Asia coverage)
- Traditional Chinese users: CodexMono-Traditional
- Korean/Japanese only: CodexMono-KR (smaller file)
- English only: CodexMono (minimal size)
- Web: Use woff2 versions for faster loading
Q: Does it support ligatures?
A: No. CodexMono prioritizes clarity over ligatures. Each character is distinct.
Rationale: In terminals and code, != should be two characters, not one glyph.
Q: Why is EA 18MB?
A: 36,434 glyphs × Variable Font data. But you get:
- All languages (Korean, Japanese, Chinese, Latin)
- All weights (100-800) in one file
- Compare: 8 separate font files would be 128MB total
Q: Can I use this commercially?
A: Yes! SIL OFL 1.1 allows commercial use. Just don't sell the font standalone.
Q: Can I create "MyFont CodexMono"?
A: Yes! That's exactly what we encourage. Just follow the philosophy:
- Strict fixed-width cells (600/1200 units)
- Terminal compatibility first
- Credit the philosophy
Q: Can I modify CodexMono?
A: Yes! Fork it, modify it, redistribute it. Just:
- Keep the SIL OFL 1.1 license
- Credit original authors
- If it doesn't follow strict monospace, don't use "CodexMono" in the name
📚 Technical Specifications
Perfect Monospace Alignment
The CodexMono Guarantee: True Monospace
Latin characters: 600 units (half-width)
East Asian chars: 1200 units (full-width)
Exact 1:2 ratio
Example terminal grid (perfectly aligned in CodexMono font):
┌─────────────────────────────────┐
│ Hello 안녕하세요 こんにちは │ ← Perfect alignment
│ print("가나다") │ ← No overflow
│ const 가나다 = "こんにちは" │ ← Grid-locked
└─────────────────────────────────┘
*Note: This box aligns perfectly only when viewed with CodexMono font.*How we achieved this:
- Korean/Japanese: Converted from variable-width to exact 1200 units
- Chinese: Scaled and centered to 1200 units
- Latin: Native 600 units preserved (JetBrains Mono)
- Every glyph measured, every bearing adjusted
Terminal-First Design Philosophy
Typography rules broken for functionality:
Box drawing characters: OVERFLOW strategy
─│┌┐└┘├┤┬┴┼
LSB/RSB: 0 to -20px (negative bearings!)
Why: Seamless line connections in terminal UI
Arrow characters: AGGRESSIVE_REDUCE strategy
← → ↑ ↓
Bearing reduction: -220px to -286px
Why: Maximum visibility in code editorsFunction > Form. Always.
Font Metrics
| Metric | Latin | Korean | Japanese | Chinese | |--------|-------|--------|----------|---------| | Advance Width | 600 | 1200 | 1200 | 1200 | | Avg Height | 741 | 862 | 757 | 841 | | Left Bearing | ~50 | ~197 | ~221 | ~195 | | Right Bearing | ~50 | ~197 | ~222 | ~195 |
File Comparison
| Version | Size (TTF) | Size (WOFF2) | Glyphs | Variable | |---------|------------|--------------|--------|----------| | EA | 18 MB | 7.39 MB | 36,434 | ✅ 100-800 | | Traditional | 17 MB | 6.97 MB | 33,720 | ✅ 100-800 | | KR | 5.8 MB | 1.80 MB | 15,132 | ✅ 100-800 | | Core | 648 KB | 227 KB | 4,007 | ✅ 100-800 |
📜 License & Attribution
Dual Protection Model
Trademark (CodexMono™):
- Protected brand for official releases by Monolex.AI
- Ensures quality of reference implementation
Open Philosophy (CodexMono suffix):
- Free to use in derivative font names
- Builds ecosystem of quality monospace fonts
- Creates movement toward true monospace
Font Software:
- License: SIL Open Font License 1.1
- Copyright: © 2025 Monolex.AI (Umzikim Inc.)
- Free for personal and commercial use
- Can be modified and redistributed
- Full license:
licenses/LICENSE_CodexMono.txt
Source Fonts
JetBrains Mono
- Authors: Philipp Nurullin, Konstantin Bulenkov
- Copyright: © 2020 The JetBrains Mono Project Authors
- License: SIL OFL 1.1
- Used for: Latin, ASCII, programming symbols (600 units base)
- Source: https://github.com/JetBrains/JetBrainsMono
Pretendard
- Author: Kil Hyung-jin (길형진)
- Copyright: © 2021 Kil Hyung-jin
- License: SIL OFL 1.1
- Used for: Korean Hangul (11,172), Japanese Kana (189)
- Modification: Converted from variable-width to 1200 monospace
- Source: https://github.com/orioncactus/pretendard
Noto Sans Mono
- Author: Google
- Copyright: © 2022 The Noto Project Authors
- License: SIL OFL 1.1
- Used for: Extended Latin, Math, Greek, Cyrillic, Box drawing
- Source: https://github.com/notofonts/latin-greek-cyrillic
Noto Sans SC / TC
- Author: Google
- Copyright: © 2022 The Noto Project Authors
- License: SIL OFL 1.1
- Used for: Simplified Chinese (SC), Traditional Chinese (TC)
- Modification: Centered to 1200 monospace
- Source: https://github.com/notofonts/noto-cjk
Complete attribution: See docs/ATTRIBUTION.md
🔗 Links & Resources
Official
- Website: https://monolex.ai/with/codexmono
- Repository: https://github.com/monolex/codexmono
- npm Package: https://www.npmjs.com/package/@monolex/codexmono
Documentation
- Changelog:
docs/CHANGELOG.md - Attribution:
docs/ATTRIBUTION.md - Checksums:
docs/CHECKSUMS.md
Support
- Email: [email protected]
Join Us
Join us. Make your font CodexMono. Build the shared reality.
This is both a font family and a philosophy:
- Strict fixed-width cells - No compromises, no exceptions
- Terminal-first design - Function > Form, always
- Trust through structure - Every │ is a signal, every alignment is a promise
- Open philosophy - Anyone can adopt the standard
Philosophy proves: Standards can be beautiful. Constraints enable freedom. Trust scales through structure.
CodexMono™ - Where Philosophy Meets Typography
Developed with ❤️ by Monolex.AI
monolex.ai | GitHub | npm
© 2025 Monolex.AI (Umzikim Inc.) | SIL Open Font License 1.1
