Lexy is a lightweight CLI tool that fetches programming tutorials from "Learn X in Y Minutes" directly into your terminal. Quickly search, learn, and reference code examples without leaving your workf https://antoniorodr.github.io/lexy/
Find a file
Antonio Rodriguez bbd0385901
Merge pull request #16 from antoniorodr/dependabot/uv/pymdown-extensions-10.21.3
build(deps): bump pymdown-extensions from 10.21.2 to 10.21.3
2026-06-16 09:29:01 +02:00
.github ci: update feil mirror workflow 2026-04-29 14:13:28 +02:00
assets Delete logo from assets 2026-04-13 21:54:03 +02:00
docs fix documentation images 2025-09-02 15:57:50 +02:00
src style(config): add type annotation to load_config 2026-04-21 15:35:30 +02:00
tests style(typing): add typing to all files, where possible 2026-04-17 08:26:24 +02:00
.editorconfig Add .editorconfig to the project 2026-02-15 11:12:21 +01:00
.gitignore chore(gitignore): remove uv.lock and add site folder 2026-04-21 15:21:43 +02:00
.python-version first commit 2025-04-28 18:14:06 +02:00
AGENTS.md Add agents.md for no autopilot workflow 2026-03-12 07:58:01 +01:00
CHANGELOG.md docs(changelog): update changelog with last version 2026-04-21 15:37:24 +02:00
cliff.toml docs(cliff): update cliff config 2026-04-23 16:09:28 +02:00
CODE_OF_CONDUCT.md first commit 2025-04-28 18:14:06 +02:00
CONTRIBUTING.md Update contributing file 2026-03-12 07:58:10 +01:00
LICENSE Update license 2026-04-13 16:38:01 +02:00
pyproject.toml chore(pyproject): update version 2026-04-21 15:36:33 +02:00
README.md docs(readme): fix typo 2026-04-16 16:11:47 +02:00
uv.lock build(deps): bump pymdown-extensions from 10.21.2 to 10.21.3 2026-06-16 07:28:14 +00:00
zensical.toml docs(zensical): substitute mkdocs.yml for zensical.toml 2026-04-21 15:22:07 +02:00

lexy

Caution

Status: Under development

About

Lexy is a lightweight Python CLI that brings tutorials from Learn X in Y Minutes straight into your terminal. It is designed for quick lookup, learning, and reference without breaking your workflow.

Lexy keeps a local cache of the documentation so you can browse content offline, preview it with syntax highlighting through bat, and search available languages with fzf.

Full documentation is available at antoniorodr.github.io/lexy.

Tip

If you use Neovim, check out the lexy.nvim plugin

🎬 Demo

Lexy demo

Features

  • Read Learn X in Y Minutes tutorials directly from the terminal
  • Browse cached documentation offline after the first fetch
  • Preview syntax-highlighted content with bat
  • Search available languages with fzf
  • Refresh the local cache on demand with lexy update
  • Check when the cache was last updated with lexy modified
  • Customize the fzf layout and colors through config.toml

🛠️ Technologies

The project is built with:

📋 Requirements

Before starting, make sure the required tools and dependencies are installed on your machine:

python3.13 --version
fzf --version
bat --version

Lexy requires Python 3.13 or newer, plus fzf for searching and bat for syntax-highlighted previews.

On some Linux distributions, installing bat with apt provides the executable as batcat instead of bat. In that case, follow the official bat instructions to create the required symlink, since a shell alias is not visible to the Python subprocess Lexy uses.

📦 Installation

Manual installation

git clone https://github.com/antoniorodr/lexy
cd lexy
pip install .

Homebrew installation

brew tap antoniorodr/lexy
brew install antoniorodr/lexy/lexy

Installation with uv

uv tool install git+https://github.com/antoniorodr/lexy

AUR installation

yay -S lexy

🚀 Getting Started

Once installed, try the core commands:

lexy list
lexy python
lexy update
lexy modified

Use lexy list to browse available languages, pass a language name like lexy python to open a tutorial, use lexy update to refresh the local cache, and lexy modified to check when the cache was last updated.

Lexy stores its local documentation cache and configuration in $HOME/.config/lexy. The cache is created automatically on first run and refreshed automatically every 60 days.

If you want to customize the fzf interface, create a config.toml file in the Lexy config directory and override only the values you want to change.

For full usage details and theming examples, see the documentation site.

❤️ Do you like my work?

If you find the project useful, you can support the author here:

GitHub Sponsor