Skip to main content

Search what you keep. Run what you need.

Project description

runi

Search what you keep. Run what you need.

runi turns your plain text into a fast, searchable command palette.

It scans your files, extracts useful lines, and helps you recall them instantly in your terminal.

Why runi?

You probably have useful commands scattered across:

  • command.txt
  • notes
  • random files
  • past solutions you don’t want to lose

You could search everything with tools like ripgrep.

But that often means:

  • too much noise
  • irrelevant results
  • repeating the same search effort

runi takes a different approach:

It searches only what you intentionally keep.

Concept

  • your files = knowledge source
  • runi = clean, curated index
  • fzf = interactive selection

Together:

runi | fzf

→ becomes your personal command palette.

Installation

Using uv:

uv tool install runi-cli

Or locally:

uv sync

Usage

Show all entries

runi harvest

Search

runi search git

Shortcut

runi git

Recommended workflow

Use runi together with fzf.

Add this to your shell config:

rf() {
  local cmd
  cmd=$(runi "$@" | fzf --query "$*" --height 40% --border)

  if [[ -n "$cmd" ]]; then
    print -z "$cmd"
  fi
}

Now you can:

rf
rf git
rf ruff src

→ select with arrows

→ inserted into your prompt

→ edit if needed

→ press Enter to run

Configuration

On first run, runi creates:

~/.config/runi/config.toml

Example:

# Root directory to scan
root = "/Users/yourname/Data"

# File patterns (glob supported)
pattern = ["command.txt", "*.md"]

Supported patterns

  • exact filename:

    • "command.txt"
  • glob:

    • "*.txt"
    • "*.md"
  • multiple:

    • ["command.txt", "thought.txt"]

Doctor

Show configuration and scan info:

runi doctor

When to use runi

runi is useful if you:

  • use the terminal frequently
  • have commands you repeat but forget
  • keep notes in plain text
  • prefer simple tools over heavy systems

Positioning

  • ripgrep → search everything
  • runi → search what matters

runi is a curated command recall tool, not a general search engine.

Philosophy

  • plain text first
  • minimal and composable
  • works well with existing tools
  • no heavy abstraction

Summary

runi turns scattered text into a usable, fast command memory.

Future ideas

  • tagging
  • ranking by usage
  • deeper fzf integration

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

runi_cli-0.1.0.tar.gz (34.4 kB view details)

Uploaded Source

Built Distribution

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

runi_cli-0.1.0-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file runi_cli-0.1.0.tar.gz.

File metadata

  • Download URL: runi_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 34.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.4.30

File hashes

Hashes for runi_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 348d33796e0fdd00eb7a35ff7384f206865b465f40270708ad5b6c587c62a818
MD5 8ca01d6a75d1dfc8cfbe464411dbaeeb
BLAKE2b-256 ac3649b36393a1a275a78ed6d77f4ea9aa162ed1ad6eb6b73adb9c64881506bc

See more details on using hashes here.

File details

Details for the file runi_cli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: runi_cli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.4.30

File hashes

Hashes for runi_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5feb49b4d16f2826a4d991ad31fb66b93011de73b23d6de57fba0dc0dd4fc0b9
MD5 a047d6417ef916fca67d9c4a6512e4cd
BLAKE2b-256 5d36ea87b89049bd51b1dec3cd92b9a3547300d5dd55354855326ef5e2967eef

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