Quick Resource Locators (QRLs)
Basic tool to keep your key resources quickly available at your fingertips.
Define a config with urls, dirs, scripts/snippets, files etc:
# QRLs.toml
[]
= "https://github.com/qrlkit/qrlkit-rs"
= "https://github.com/qrlkit/qrlkit-web"
[]
= "https://github.com/qrlkit/qrlkit-rs"
= "https://github.com/qrlkit/qrlkit-web/pulls"
[]
= """
cargo fmt
cargo test
cargo clippy
python3 "~dev/qrlkit-rs/test/integration.py"
"""
= "zsh"
[]
= "~/dev/qrlkit-rs"
= "~/dev/qrlkit-web"
= "cd $dir && tree -L 1"
[]
= "~/dev/qrlkit-rs/Cargo.toml"
= "~/dev/qrlkit-rs/README.md"
= "~/dev/qrlkit-web/CHANGELOG.md"
= "nvim $file"
Import the file with qrlkit add and turn it in to a lightweight CLI tool:
# Open a new terminal, then:
The tool is built to 1) optimize for adaptability to your flow:
qrlkit add <x>accepts any file name and supports toml, json and yaml configs- Set hooks to customize behavior for files and dirs in each config and/or globally
- Define your own CLI behavior:
- By setting config keys you decide if it's
logs live nginxorlogs nginx live. - Name tools and paths what you want
- By setting config keys you decide if it's
- Multiple configs are supported at once. Make one for your projects, your machine or your team/org
and 2) have as little friction as possible:
- If you forget something run
qrlkitto run any imported tool qrlkitwill suggest the next keys if you get stuck
Install
Step 1 Clone repo and install qrlkit binary
git clone git@github.com:qrlkit/qrlkit-rs.git
cd qrlkit-rs
cargo install --path .
# Then start init to set the defaults you want (shell, browser etc)
qrlkit init
Step 2 Write some config you want
Step 3 Add the config
qrlkit add shortcuts.toml
Version 1 Roadmap
Version 1 happens January 2027. Until then expect everything to break. Current version is 0.5.1 but any minor version can ship with a breaking change until v1.
Version 1
qrlkit
- init
- add <file | dir path>
- multiple configs at once
- graceful collisions
- qrlkit [keys…]
- ls
- rm
- reload
- set-browser
- set-filehook
- set-dirhook
- nuke
config
- yaml, json and toml
- nested keys
- URLs
- files and dirs
- shell scripts
- variables in paths, urls, scripts
- file hooks
- dir hooks
- browser hooks
- run shell scripts
package managers
-
cargo install -
npm install
Raw install
- linux and macos binaries released on GitHub
- install.sh
Commands
| Command | What it does |
|---|---|
qrlkit [keys…] |
Browse or open a resource |
qrlkit --config <path> … |
Use a separate state file for debugging |
qrlkit add <file-or-directory> |
Register configs and set up root commands |
qrlkit ls |
List registered config files |
qrlkit rm <path> |
Unregister a config; keep the file |
qrlkit reload |
Refresh imports and retry shell setup |
qrlkit set-browser |
Choose the default browser |
qrlkit set-filehook <command> |
Choose the default file action (--clear restores path printing) |
qrlkit set-dirhook <command> |
Choose the directory hook (--clear restores changing directory) |
qrlkit init |
Choose browser, shell, filehook, and dirhook interactively |
qrlkit init <shell> |
Print the directory wrapper for manual setup |
qrlkit nuke |
Reset imports, renames, browser selection, and hooks |
qrlkit --help |
Show help |
nuke keeps your original config files and installed shell integration.
State is stored in $XDG_STATE_HOME/qrlkit/state.yaml on Linux, falling back to
~/.local/state/qrlkit/state.yaml, or in
~/Library/Application Support/qrlkit/state.yaml on macOS. Use
qrlkit --config <path> … for separate state (usefull for debugging).
Contributing
Contributions are welcome! Either drop a PR or create an issue.