System-wide math shorthand for macOS, with explicit controls for testing, toggling, and safe app-by-app behavior.
Type mathematical shorthand system-wide—alpha becomes α, -> becomes →, and your formulas read like real math.
| You type (shorthand) | You get (Unicode) |
|---|---|
alpha -> beta |
α → β |
for all x in A |
∀ x ∈ A |
int 0 -> inf x |
∫₀^∞ x dx |
sum_(i=1)^n i^2 |
∑ᵢ₌₁ⁿ i² |
Transforms follow your config (Greek, operators, integrals, sums, products, limits, transforms, set logic, probability/statistics, scripts, and more). Use typesymbol test "..." to preview any string.
TypeSymbol is a local, system-wide typing engine for math notation.
Instead of switching tools or opening symbol pickers, you keep typing in plain text and TypeSymbol expands it into Unicode math where you already work: notes, chats, docs, editors, and browsers.
It is built for one goal: reduce friction between thinking in math and writing in software.
%%{init: { "theme": "base", "themeVariables": { "primaryColor": "#1a1020", "primaryTextColor": "#e8e0f0", "lineColor": "#ba53e6", "tertiaryColor": "#1f1630" } } }%%
flowchart TB
A[Type shorthand in any app]
B[Press trigger key enter or ctrl-space]
C[Check daemon is running]
D{App excluded?}
E[Pass through unchanged]
F[Normalize input spacing and phrase forms]
G[Apply core symbol rules aliases and operators]
H[Apply math packs integrals sums products limits transforms sets probability]
I[Apply scripts and roots superscript subscript sqrt]
J[Assemble final Unicode output]
K[Inject output into focused app]
L[You see formatted math instantly]
A --> B --> C --> D
D -- yes --> E
D -- no --> F --> G --> H --> I --> J --> K --> L
%%{init: { "theme": "base", "themeVariables": { "primaryColor": "#1a1020", "primaryTextColor": "#e8e0f0", "lineColor": "#ba53e6", "tertiaryColor": "#1f1630" } } }%%
flowchart TB
C1[typesymbol on or off]
C2[typesymbol daemon status]
C3[typesymbol config init]
C4[typesymbol config show]
C5[typesymbol test input]
R1[Runtime enabled or paused]
R2[Health visibility]
R3[Config baseline created]
R4[Active rules and trigger inspected]
R5[Preview without live injection]
C1 --> R1
C2 --> R2
C3 --> R3
C4 --> R4
C5 --> R5
- A Rust engine parses and expands your math shorthand.
- A background daemon watches input so replacement can happen globally (not just inside one app).
- A native macOS adapter handles input capture and text injection.
| Control | What it does | Why it matters |
|---|---|---|
typesymbol on / typesymbol off |
Enable or pause global replacement instantly | You can safely switch contexts without uninstalling or editing config |
typesymbol daemon status |
Shows whether the background service is running | Quick health check when symbols are not appearing |
typesymbol config init |
Creates a local config with defaults | Gives you an explicit, editable baseline instead of hidden behavior |
typesymbol config show |
Prints the active config | Confirms which symbol families and triggers are currently active |
typesymbol test "..." |
Previews transforms without injecting into apps | Lets you validate rules before using them in live text fields |
Trigger setting (enter / ctrl-space) |
Chooses when replacement is applied | Balances speed vs control based on your typing style |
| Excluded apps list | Prevents replacement in selected apps | Avoids accidental transforms in terminals, editors, or sensitive inputs |
# macOS (Homebrew)
brew install yazanmwk/homebrew-tap/typesymbolVerify:
typesymbol test "alpha -> beta"
typesymbol daemon statusAll alternative install methods (manual assets, from source, troubleshooting) are in docs/install.md.
- Open source contributions are welcome (features, fixes, docs, tests).
- Maintainers handle all version tags and official releases.
- Pull requests do not publish release artifacts.
# Preview a transform without the daemon
typesymbol test "alpha -> beta"
# Config
typesymbol config init
typesymbol config show
# Daemon
typesymbol daemon statusTypeSymbol covers the main math shorthand families below.
| Family | Examples you type | Output style |
|---|---|---|
| Core symbols | alpha, theta, pi, inf, ->, <=, != |
α, θ, π, ∞, →, ≤, ≠ |
| Scripts & roots | x^10, x_i, a_1, sqrt(x), sqrt x |
x¹⁰, xᵢ, a₁, √(x), √x |
| Calculus | int 0 -> inf x, sum_(i=1)^n, product from i = 1 to n of i, limit x to 0 of ..., partial/partial x ... |
∫₀^∞ ..., ∑..., ∏..., lim..., ∂/∂x ... |
| Transforms | laplace of f(t), inverse laplace of F(s), fourier transform of x(t) |
ℒ{...}, ℒ⁻¹{...}, ℱ{...} |
| Sets & logic | for all x in A, there exists y not in B, subseteq, union, intersection |
∀ x ∈ A, ∃ y ∉ B, ⊆, ∪, ∩ |
| Probability & stats | `probability of A | B, expected value of X, variance of X` |
| Natural language normalization | x power of 2 |
x² |
Coverage is rule-based and configurable, so behavior stays predictable.
Complete syntax examples: docs/syntax-guide.md
- Keep flow state: type plain shorthand and get math symbols without leaving your current app.
- Work everywhere on macOS: applies system-wide, not only inside one editor.
- Stay in control: explicit triggers, quick on/off, test mode, and per-app exclusions.
- Trust the output: deterministic rule-based transforms with config you can inspect and edit.
Only the main areas most contributors need:
TypeSymbol/
├── crates/
│ ├── typesymbol-core/ # Parsing + transform engine
│ ├── typesymbol-config/ # Config model + defaults
│ ├── typesymbol-daemon/ # Runtime + input event pipeline
│ ├── typesymbol-platform-macos/ # Native macOS adapter
│ └── typesymbol-cli/ # CLI + TUI entrypoint
└── docs/ # Install, syntax, contributing, security
Release and packaging infrastructure is maintainer-only and intentionally omitted from this contributor-facing map.
Index of all guides: docs/README.md.
| Doc | What it’s for |
|---|---|
| docs/install.md | Detailed install, PATH, and platform notes |
| docs/CONTRIBUTING.md | Build from source, tests, and PR workflow |
| docs/SECURITY.md | Responsible disclosure |
| LICENSE | MIT License |
Do not post suspected vulnerabilities in public issues first. See docs/SECURITY.md for how to report them responsibly.