Skip to main content

TLNR (Too Long; No Need To Read) - Real-time terminal command education for Zsh

Project description

tlnr

too long; no need to read — Real-time terminal command education

License Tests Performance

tlnr (pronounced "tee-el-en-are") gives you instant command explanations as you type — no context switching, no waiting, no interruptions.

Why tlnr?

The name says it all: "too long; no need to read"tlnntrtlnr (the 'nt' is silent, like in "knight")

  • tldr: "too long; didn't read" — you already stopped to look it up
  • tlnr: "too long; no need to read" — you never stopped typing

What Makes tlnr Different?

Feature tlnr tldr cheat.sh man pages explainshell
Real-time ✅ As you type ❌ Lookup ❌ Lookup ❌ Lookup ❌ Lookup
Speed 0.24ms avg N/A >100ms >50ms >500ms
Context switching ✅ Zero ❌ Yes ❌ Yes ❌ Yes ❌ Browser
Installation pip install tlnr pip install tldr curl Built-in Web only
Coverage 32,000+ commands 1,000+ 1,000+ System-dependent Limited

The difference: Every other tool makes you stop typing. tlnr doesn't.

Installation

🐳 Try It Now (Docker - No Install Required)

Fastest way to try tlnr — works on any platform:

docker run -it --rm jatinmayekar/tlnr

You'll drop into a Zsh shell with tlnr pre-installed. Just start typing!


Quick Start (Recommended)

Using pipx (isolated, recommended):

# Install pipx if you don't have it
python3 -m pip install --user pipx
python3 -m pipx ensurepath

# Install tlnr
pipx install tlnr

# Install shell integration (Zsh required for real-time)
tlnr install

# Restart shell
exec zsh

Using pip (alternative):

# System-wide (may require --break-system-packages on some systems)
pip install tlnr

# Or user install
pip install --user tlnr

# Then install shell integration
tlnr install
exec zsh

From source:

git clone https://github.com/yourusername/tlnr.git
cd tlnr
pip install -e .
tlnr install

Usage

Once installed, just start typing. tlnr shows explanations automatically:

$ git sta█
🟢 SAFE git status - Show the working tree status

Manual Commands

# Get command explanation
tlnr predict "git status"

# Natural language search
tlnr ask "how to list files"

# Debug with performance metrics
tlnr debug "docker"

# Control real-time predictions
tlnr enable    # Turn on
tlnr disable   # Turn off
tlnr status    # Check current state

Features

⚡ Real-Time Predictions (Zsh)

  • Keystroke-by-keystroke command education
  • 0.24ms average response time (20,931 ops/sec)
  • Zero latency — never notice it's running

🧠 Intelligent Fuzzy Matching

  • State-of-the-art algorithm with exponential position decay
  • Context-aware recommendations
  • FZF-inspired smart scoring

🛡️ Safety First

  • 🟢 SAFE / 🟡 CAUTION / 🔴 DANGEROUS risk levels
  • Warns before destructive commands
  • Explains what commands actually do

🗣️ Natural Language Search

$ tlnr ask "how to find large files"
find - 🟢 SAFE - Search for files in a directory hierarchy

📊 32,000+ Commands

  • Git, Docker, Kubernetes, AWS, system utilities
  • Updated from tldr-pages community database
  • Add custom commands via ~/.tlnr_custom_commands.json

Performance

Unit Tests:        40/40 PASSED ✅
Edge Case Tests:   ALL PASSED ✅
Average Response:  0.24ms
Throughput:        20,931 ops/sec

Architecture

tlnr achieves sub-millisecond performance through:

  1. Daemon Mode: Eliminates Python startup overhead (~50ms → ~0.2ms)
  2. Unix Socket IPC: Fast local communication
  3. Trie-Based Search: O(k) lookups where k = command length
  4. Zero External Deps: No API calls, no network latency

Platform Support

Platform Real-Time Manual Commands
macOS (Zsh) ✅ Full support
Linux (Zsh) ✅ Full support
Other shells (Bash/Fish) ⚠️ Manual only

Note: Windows/WSL2 support is planned but not yet tested.

Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

Good First Issues:

  • Add new command descriptions
  • Improve fuzzy matching algorithm
  • Port to other shells (Fish, Bash)
  • Performance optimizations

License

AGPL-3.0 — Free for personal and open-source use.

For commercial/enterprise use, the AGPL requires you to open-source any modifications. If you need a different license, please contact me.

Why AGPL?

I'm on an H-1B visa and can't start a company or raise VC funding. Open source is my only path to building reputation and career leverage. The AGPL ensures:

  1. Individuals can use tlnr freely
  2. Open-source projects can integrate without restriction
  3. Companies who want to use it internally must either:
    • Open-source their modifications (strengthens the project)
    • Contact me for dual licensing (creates career opportunities)

This isn't about making money — it's about building undeniable proof of product + technical skill to unlock opportunities at OpenAI, Anthropic, Google, or Meta.


Built by Jatin Mayekar | GitHub | Email

⭐ Star on GitHub if tlnr saves you time!

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

tlnr-0.1.71.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

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

tlnr-0.1.71-py3-none-any.whl (1.4 MB view details)

Uploaded Python 3

File details

Details for the file tlnr-0.1.71.tar.gz.

File metadata

  • Download URL: tlnr-0.1.71.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for tlnr-0.1.71.tar.gz
Algorithm Hash digest
SHA256 f19300d274b2534b6fc82364d26cb59fd50f8ed21f8f78ce2bc3e41ac9f4edbb
MD5 de3613c2d7daa4ed25cd656663e3655a
BLAKE2b-256 e088e0d73b3c15713c8ff1d53279aed45427137552e16a8acff9403a062b90eb

See more details on using hashes here.

File details

Details for the file tlnr-0.1.71-py3-none-any.whl.

File metadata

  • Download URL: tlnr-0.1.71-py3-none-any.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for tlnr-0.1.71-py3-none-any.whl
Algorithm Hash digest
SHA256 382b0c9221028c4cd05c77912ef23a41aeb779e3fa65ff4354048b4e95758d1d
MD5 be7026e4574faa7e5edf7a9a69430ebd
BLAKE2b-256 450de8b67d6a03b75b011a102dfde8324f544bc6cbe1b35c80cfe79c4757c312

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