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:
rofifor the interactive launcher flowxclip,xsel, orwl-copyfor 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
bashshshellpowershellps1cmdbatbatch
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)
| File | Size | Uploaded | |
|---|---|---|---|
| opindex-0.1.3.tar.gz | 24.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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