Skip to main content

OpIndex

OpIndex is a Linux-first command memory tool for markdown notes. It parses reusable command blocks from your notes, lets you search them from a launcher, and copies the selected command to the clipboard.

The current UI is optimized for rofi on X11, but the note format and CLI are useful independently of the launcher.

What it does

  • searches reusable commands from markdown files
  • organizes sources into named workspaces
  • supports quick workspace switching from a launcher
  • shows source-document context while browsing
  • lints notes against the OpIndex authoring standard
  • copies selected commands to the clipboard

Platform

OpIndex currently targets Linux. It expects one of:

  • rofi for the interactive launcher flow
  • xclip, xsel, or wl-copy for clipboard access

Installation

System dependencies

Debian or Ubuntu:

sudo apt install rofi xclip

Wayland clipboard support:

sudo apt install wl-clipboard

Python package

pipx install opindex

This installs the opindex command.

For local development from this repository:

pipx install .

Quick start

Create a config:

opindex --create-config

Run the selector in the default workspace:

opindex

Open the workspace picker first:

opindex --workspace-menu

Search a specific workspace:

opindex --workspace notes

Search all workspaces:

opindex --all

Browse by workspace, then document:

opindex --browse

Configuration

The config file lives at:

~/.config/opindex/config.yaml

Example:

default_workspace: notes

workspaces:
  notes:
    directories:
      - "~/notes/commands"
    files: []
    recursive: true
    file_patterns:
      - "*.md"
      - "*.markdown"

  cheatsheets:
    directories:
      - "~/notes/reference"
    files: []
    recursive: true
    file_patterns:
      - "*.md"
      - "*.markdown"

rofi:
  max_lines: 15
  prompt: "Commands"
  window_width: 60
  element_height: 2

cache:
  enabled: true
  directory: null

substitute_variables: false
variables: {}

Markdown format

Minimal parseable format:

# Azure CLI

## Login with device code
```bash
az login --use-device-code
```

OpIndex parses:

  • # as the category
  • ## as the searchable task heading
  • fenced code blocks as command content

Supported command block languages:

  • empty language
  • bash
  • sh
  • shell
  • powershell
  • ps1
  • cmd
  • bat
  • batch

For the stricter durable-note format, see:

Linting

Lint a specific note:

opindex --lint-files path/to/file.md

Lint the selected workspace sources:

opindex --lint-files

CLI

Common commands:

opindex --help
opindex --list-workspaces
opindex --list-files
opindex --list-commands
opindex --clear-cache
opindex --config-path

Development

Enter the dev shell:

direnv allow

Or without direnv:

nix develop

Run tests:

pytest -q

Run the parser against a file:

python -m cmd_manager.parser test_data/sample.md

Lint a note during development:

./opindex --lint-files test_data/sample.md

Publishing

Release notes for maintainers:

Releases publish to PyPI from pushed tags in the form v<semver>.

License

MIT

Release files for opindex 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for opindex 0.1.3
File Size Uploaded
opindex-0.1.3.tar.gz 24.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for opindex 0.1.3
File Interpreter ABI Platform
opindex-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 46.5 kB

Release files / opindex-0.1.3.tar.gz

Download URL opindex-0.1.3.tar.gz
Size 24.5 kB
Tags Source
SHA-256 checksum
How to use checksums
134b836035d110fc875251bfd68e91487cd16d975f97283ec1364fce9318b897
BLAKE2b-256 checksum
How to use checksums
1f8b1165e9221121744c1494c6a5805eb1d96f4bdc212db825bc5238413cf760
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 23, 2026.

Transparency log

Release files / opindex-0.1.3-py3-none-any.whl

Download URL opindex-0.1.3-py3-none-any.whl
Size 21.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dd4f170e0ce00bb300a4cd34c27d59aef9c860e082bdb62a6f7fe74dd8204243
BLAKE2b-256 checksum
How to use checksums
b0b1f4e6d1ea66c78da1eb6e10a0835fe294f7a9cde99b87e44a805b95cccf82
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 23, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page