Skip to main content

Unified CLI for FYIPedia developer tools — color, emoji, symbol, unicode, font, distance, time, name, unit, holiday.

Project description

fyipedia

PyPI Python License: MIT

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:

  1. Plugin registry defines 10 entries as (command_name, module_path, help_text) tuples
  2. At startup, importlib.import_module() attempts to load each plugin's CLI module
  3. Successfully loaded plugins are registered as Typer sub-commands
  4. Missing packages are silently skipped -- no errors, graceful degradation
  5. fyi version shows 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 PyPI Color conversion (7 spaces), WCAG contrast, harmonies, shades, color blindness simulation
emoji emojifyi PyPI 3,953 emoji metadata, search, 8 encoding formats
symbol symbolfyi PyPI Symbol encoding (11 formats), Unicode properties
unicode unicodefyi PyPI Unicode character info, 17 encodings, 90 HTML entities
font fontfyi PyPI 50 Google Fonts metadata, CSS snippets, font pairings
distance distancefyi PyPI Haversine distance, bearing, midpoint, travel times
time timefyi PyPI Timezone operations, time differences, sunrise/sunset
name namefyi PyPI Korean romanization, Five Elements, CJK stroke count
unit unitfyi PyPI 220 units across 20 categories, Decimal precision
holiday holidayfyi PyPI 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

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fyipedia-0.1.0.tar.gz (31.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fyipedia-0.1.0-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

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

Hashes for fyipedia-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fb3b8b32d42f2b9502f69e124d72efd5914deb22f97f9b433549e3579b630956
MD5 d3615f08991431c420963f5d8688f89e
BLAKE2b-256 96198e78dcdac3a2ff2d88131e320e3ff860ed6ed8d92cd9aa32d2f30a9a4188

See more details on using hashes here.

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

Hashes for fyipedia-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 84c5ed637c1cc83213b8d4edf63734018f83240c0a1f44a035674c0b3c8baa9a
MD5 4a30adc9399cef4f3da7f449a6152682
BLAKE2b-256 b5c122ca59990cb41e6293379c639222efea82853b0499b960117c1f6ad82705

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page