Unified CLI for FYIPedia developer tools — color, emoji, symbol, unicode, font, distance, time, name, unit, holiday.
Project description
fyipedia
Unified CLI for the FYIPedia developer tools ecosystem. One command (fyi) gives you instant access to 10 specialized tools -- color conversion, emoji lookup, symbol encoding, Unicode search, Google Fonts metadata, distance calculation, timezone operations, Korean romanization, unit conversion, and holiday dates -- all from your terminal.
Install once, use everything. Each plugin is loaded lazily -- only installed packages are registered. Install all 10 tools or pick just the ones you need.
Install
pip install "fyipedia[all]" # All 10 tools
pip install "fyipedia[color,distance]" # Just color + distance
pip install "fyipedia[color,emoji,font]" # Pick any combination
pip install fyipedia # Core only (no plugins)
Requires Python 3.10+. Each plugin is an optional dependency -- install only what you need.
Quick Start
# Convert a hex color to 7 color spaces (RGB, HSL, HSV, CMYK, Lab, OKLCH)
fyi color info FF6B35
# Check WCAG contrast between two colors
fyi color contrast 000000 FFFFFF
# Generate Tailwind-style shade palette
fyi color shades 3B82F6
# Simulate color blindness (protanopia, deuteranopia, tritanopia)
fyi color blindness FF5733
# Calculate distance between Seoul and Tokyo
fyi distance calc --lat1 37.57 --lon1 126.98 --lat2 35.68 --lon2 139.65
# Convert temperature
fyi unit convert 100 celsius fahrenheit
# Convert weight
fyi unit convert 70 kilogram pound
# Look up current time in a timezone
fyi time now America/New_York
# Search for emojis by keyword
fyi emoji search fire
# Look up an emoji by slug
fyi emoji lookup fire
# Find upcoming holidays in the US
fyi holiday upcoming US
# Calculate Easter date for any year
fyi holiday easter 2026
# Romanize Korean text (Revised Romanization)
fyi name romanize 김민준
# Look up a Unicode character
fyi unicode info U+2764
# Encode a symbol in 11 formats
fyi symbol info "@"
# Get Google Fonts metadata and CSS
fyi font info inter
# Find font pairings
fyi font pairings inter
# Show installed plugins and versions
fyi version
Complete Command Reference
fyi color -- Color Tools
| Command | Description | Example |
|---|---|---|
info <hex> |
Full color info in 7 color spaces | fyi color info FF6B35 |
contrast <fg> <bg> |
WCAG 2.1 contrast ratio + AA/AAA checks | fyi color contrast 000000 FFFFFF |
harmonies <hex> |
5 harmony types (complementary, analogous, triadic, etc.) | fyi color harmonies FF6B35 |
shades <hex> |
Tailwind-style 50-950 shade palette | fyi color shades 3B82F6 |
blindness <hex> |
Color blindness simulation (4 types) | fyi color blindness FF5733 |
mix <hex1> <hex2> |
Mix two colors in perceptual Lab space | fyi color mix FF0000 0000FF |
compare <hex1> <hex2> |
Delta E comparison + gradient | fyi color compare FF6B35 3498DB |
gradient <hex1> <hex2> |
Smooth gradient steps | fyi color gradient FF0000 0000FF |
fyi emoji -- Emoji Tools
| Command | Description | Example |
|---|---|---|
lookup <slug> |
Emoji metadata (char, codepoint, category, version) | fyi emoji lookup fire |
search <query> |
Search 3,953 emojis by keyword | fyi emoji search heart |
encode <char> |
8 encodings (UTF-8, HTML, CSS, JS, Python, Java) | fyi emoji encode "🔥" |
fyi symbol -- Symbol Encoding
| Command | Description | Example |
|---|---|---|
info <char> |
Unicode properties + 11 encodings | fyi symbol info "@" |
encode <char> |
11 encoding formats (HTML, CSS, URL, UTF-8, etc.) | fyi symbol encode "->" |
fyi unicode -- Unicode Characters
| Command | Description | Example |
|---|---|---|
info <codepoint> |
Full Unicode info (accepts U+hex, char, or hex) | fyi unicode info U+2764 |
encode <codepoint> |
17 encodings (HTML, CSS, JS, Python, Go, Rust, etc.) | fyi unicode encode U+00E9 |
search <query> |
Search characters by name | fyi unicode search heart |
fyi font -- Google Fonts
| Command | Description | Example |
|---|---|---|
info <slug> |
Font metadata (family, weights, subsets, designer) | fyi font info inter |
css <slug> |
CSS import snippet + font-family declaration | fyi font css roboto |
pairings <slug> |
Font pairing recommendations | fyi font pairings inter |
search <query> |
Search Google Fonts by name | fyi font search mono |
fyi distance -- Distance Calculation
| Command | Description | Example |
|---|---|---|
calc |
Distance, bearing, midpoint, travel times | fyi distance calc --lat1 37.57 --lon1 126.98 --lat2 35.68 --lon2 139.65 |
bearing |
Compass bearing between two points | fyi distance bearing --lat1 40.7 --lon1 -74.0 --lat2 51.5 --lon2 -0.1 |
midpoint |
Geographic midpoint | fyi distance midpoint --lat1 40.7 --lon1 -74.0 --lat2 51.5 --lon2 -0.1 |
fyi time -- Timezone Operations
| Command | Description | Example |
|---|---|---|
now <tz> |
Current time in IANA timezone | fyi time now America/New_York |
diff <tz1> <tz2> |
Time difference between timezones | fyi time diff Asia/Seoul America/New_York |
convert <time> <from> <to> |
Convert time across timezones | fyi time convert "2026-03-05 09:00" Asia/Seoul America/New_York |
fyi unit -- Unit Conversion
| Command | Description | Example |
|---|---|---|
convert <value> <from> <to> |
Convert between 220 units in 20 categories | fyi unit convert 100 celsius fahrenheit |
categories |
List all measurement categories | fyi unit categories |
list <category> |
List units in a category | fyi unit list temperature |
fyi name -- Name Tools
| Command | Description | Example |
|---|---|---|
romanize <text> |
Korean Revised Romanization | fyi name romanize 김민준 |
elements <strokes> |
Five Elements for CJK stroke count | fyi name elements 12 |
fyi holiday -- Holiday Dates
| Command | Description | Example |
|---|---|---|
upcoming <country> |
Next N public holidays (ISO country code) | fyi holiday upcoming US |
easter <year> |
Western or Orthodox Easter date | fyi holiday easter 2026 |
check <date> <countries> |
Check holidays on a specific date | fyi holiday check 2026-12-25 US,KR,JP |
fyi version -- Plugin Status
$ fyi version
FYIPedia v0.1.0
┌────────────┬─────────┬───────────┐
│ Plugin │ Version │ Status │
├────────────┼─────────┼───────────┤
│ colorfyi │ 0.2.0 │ installed │
│ emojifyi │ 0.2.0 │ installed │
│ symbolfyi │ 0.2.0 │ installed │
│ unicodefyi │ 0.2.0 │ installed │
│ fontfyi │ 0.2.0 │ installed │
│ distancefyi│ 0.1.0 │ installed │
│ timefyi │ 0.1.0 │ installed │
│ namefyi │ 0.1.0 │ installed │
│ unitfyi │ 0.1.0 │ installed │
│ holidayfyi │ 0.1.0 │ installed │
└────────────┴─────────┴───────────┘
Plugin Architecture
FYIPedia uses a lazy-loading plugin system. Each tool is an independent Python package with its own CLI module. FYIPedia discovers and registers them at startup:
fyipedia (hub)
├── fyi color → colorfyi.cli.app (if installed)
├── fyi emoji → emojifyi.cli.app (if installed)
├── fyi symbol → symbolfyi.cli.app (if installed)
├── fyi unicode → unicodefyi.cli.app (if installed)
├── fyi font → fontfyi.cli.app (if installed)
├── fyi distance → distancefyi.cli.app (if installed)
├── fyi time → timefyi.cli.app (if installed)
├── fyi name → namefyi.cli.app (if installed)
├── fyi unit → unitfyi.cli.app (if installed)
└── fyi holiday → holidayfyi.cli.app (if installed)
How it works:
- Plugin registry defines 10 entries as
(command_name, module_path, help_text)tuples - At startup,
importlib.import_module()attempts to load each plugin's CLI module - Successfully loaded plugins are registered as Typer sub-commands
- Missing packages are silently skipped -- no errors, graceful degradation
fyi versionshows which plugins are installed and their versions
Creating a plugin -- any package that exports a typer.Typer app can integrate:
# mypackage/cli.py
import typer
app = typer.Typer(help="My custom tool")
@app.command()
def hello(name: str) -> None:
typer.echo(f"Hello, {name}!")
Available Plugins
| Plugin | Package | PyPI | Description |
|---|---|---|---|
color |
colorfyi | Color conversion (7 spaces), WCAG contrast, harmonies, shades, color blindness simulation | |
emoji |
emojifyi | 3,953 emoji metadata, search, 8 encoding formats | |
symbol |
symbolfyi | Symbol encoding (11 formats), Unicode properties | |
unicode |
unicodefyi | Unicode character info, 17 encodings, 90 HTML entities | |
font |
fontfyi | 50 Google Fonts metadata, CSS snippets, font pairings | |
distance |
distancefyi | Haversine distance, bearing, midpoint, travel times | |
time |
timefyi | Timezone operations, time differences, sunrise/sunset | |
name |
namefyi | Korean romanization, Five Elements, CJK stroke count | |
unit |
unitfyi | 220 units across 20 categories, Decimal precision | |
holiday |
holidayfyi | Holiday dates for 100+ countries, Easter calculation |
Features
- 10 tools in one CLI: Color, emoji, symbol, Unicode, font, distance, time, name, unit, holiday
- Lazy plugin loading: Only installed packages are registered -- no startup penalty
- Flexible installation: Install all tools or pick specific ones via optional dependency groups
- Graceful degradation: Missing plugins are silently skipped, no import errors
- Rich terminal output: Formatted tables and colors via Rich
- Type-safe: Full type annotations, strict mypy, PEP 561 compliant
- Zero lock-in: Each plugin works standalone (
colorfyi info FF6B35) or through the hub (fyi color info FF6B35)
Also Available as MCP Server
Use all 10 tools from AI assistants (Claude, Cursor, Windsurf) via the MCP hub server:
pip install "fyipedia-mcp[all]"
See the fyipedia-mcp README for integration guides.
FYIPedia Developer Tools
Part of the FYIPedia open-source developer tools ecosystem:
| Package | PyPI | npm | Description |
|---|---|---|---|
| colorfyi | colorfyi |
colorfyi |
Color conversion, WCAG contrast, harmonies, 809 named colors |
| emojifyi | emojifyi |
emojifyi |
Emoji encoding & metadata for 3,953 Unicode emojis |
| symbolfyi | symbolfyi |
symbolfyi |
Symbol encoding in 11 formats + Unicode properties |
| unicodefyi | unicodefyi |
unicodefyi |
Unicode character lookup, 17 encodings + search |
| fontfyi | fontfyi |
fontfyi |
Google Fonts metadata, CSS helpers, font pairings |
| distancefyi | distancefyi |
distancefyi |
Haversine distance, bearing, travel times |
| timefyi | timefyi |
timefyi |
Timezone operations, time differences, sunrise/sunset |
| namefyi | namefyi |
namefyi |
Korean romanization, Five Elements, CJK stroke count |
| unitfyi | unitfyi |
unitfyi |
Unit conversion, 220 units, 20 categories |
| holidayfyi | holidayfyi |
holidayfyi |
Holiday dates, Easter calculation, 100+ countries |
| fyipedia | fyipedia |
-- | Unified CLI (fyi command) for all 10 tools |
| fyipedia-mcp | fyipedia-mcp |
-- | Unified MCP server for AI assistants |
Links
- FYIPedia GitHub Organization -- All repositories
- fyipedia-mcp -- MCP server for AI assistants
- awesome-fyi -- Curated list of FYIPedia resources
- Source Code -- MIT licensed
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fyipedia-0.1.0.tar.gz.
File metadata
- Download URL: fyipedia-0.1.0.tar.gz
- Upload date:
- Size: 31.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb3b8b32d42f2b9502f69e124d72efd5914deb22f97f9b433549e3579b630956
|
|
| MD5 |
d3615f08991431c420963f5d8688f89e
|
|
| BLAKE2b-256 |
96198e78dcdac3a2ff2d88131e320e3ff860ed6ed8d92cd9aa32d2f30a9a4188
|
File details
Details for the file fyipedia-0.1.0-py3-none-any.whl.
File metadata
- Download URL: fyipedia-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84c5ed637c1cc83213b8d4edf63734018f83240c0a1f44a035674c0b3c8baa9a
|
|
| MD5 |
4a30adc9399cef4f3da7f449a6152682
|
|
| BLAKE2b-256 |
b5c122ca59990cb41e6293379c639222efea82853b0499b960117c1f6ad82705
|