lum is a small opinionated CLI toolbox for setting up shell environment variables, installing a curated set of developer tools, listening to a few internet radio stations, checking local Git repositories, and managing folder-based Git identities.
The most useful commands for new users are:
lum env— manage API-key-style environment variables and add lum's managed tool directory to your shellPATH.lum tools— install and update curated CLI tools likesccanduniversal-ctags.
Download the latest binary for your platform from the GitHub Releases page, then put it somewhere on your PATH.
Your PATH is the list of folders your terminal searches when you type a command. If the lum binary is inside one of those folders, you can run it from anywhere by typing:
lum --help- Download the Linux or macOS binary from Releases.
- Rename it to
lumif needed. - Move it into
~/.local/bin:
mkdir -p ~/.local/bin
mv ~/Downloads/lum-* ~/.local/bin/lum
chmod +x ~/.local/bin/lum- Make sure
~/.local/binis on yourPATH.
For bash, add this to ~/.bashrc:
export PATH="$HOME/.local/bin:$PATH"For zsh, add this to ~/.zshrc:
export PATH="$HOME/.local/bin:$PATH"Then restart your terminal, or run:
source ~/.bashrc # bash
# or
source ~/.zshrc # zshCheck that it works:
lum --help- Download the Windows binary from Releases.
- Rename it to
lum.exeif needed. - Create a tools folder, for example:
New-Item -ItemType Directory -Force "$HOME\bin"
Move-Item "$HOME\Downloads\lum-windows-x86_64.exe" "$HOME\bin\lum.exe"- Add that folder to your user
PATH:
[Environment]::SetEnvironmentVariable(
"Path",
[Environment]::GetEnvironmentVariable("Path", "User") + ";$HOME\bin",
"User"
)Restart PowerShell, then check:
lum --helplum env init prints shell code that:
- adds lum's managed binary directory to
PATH - exports environment variables you set with
lum env set - applies lum's built-in default environment variables
Run this once in your shell startup file.
For bash, add this to ~/.bashrc:
eval "$(lum env init --shell posix)"For zsh, add this to ~/.zshrc:
eval "$(lum env init --shell posix)"Then restart your terminal.
Add this to your PowerShell profile:
lum env init --shell powershell | Invoke-ExpressionIf you do not know where your profile is, run:
$PROFILECreate it if it does not exist:
New-Item -ItemType File -Force $PROFILE
notepad $PROFILElum env stores common secrets behind short aliases.
Available aliases:
| Alias | Environment variable |
|---|---|
exa |
EXA_API_KEY |
neuralwatt |
NEURALWATT_API_KEY |
openrouter |
OPENROUTER_API_KEY |
synthetic |
SYNTHETIC_API_KEY |
Examples:
lum env aliases
lum env set openrouter sk-or-...
lum env list
lum env unset openrouter
lum env pathAfter setting or unsetting a value, restart your terminal or re-run your shell init command so the environment updates in the current shell.
lum tools installs curated developer tools into lum's managed binary directory. If you ran lum env init from your shell startup file, that directory is automatically on your PATH.
Available tools:
| Tool | Binary | Description |
|---|---|---|
scc |
scc |
Code counter with complexity |
universal-ctags |
ctags |
Source code indexer |
Common commands:
lum tools ls
lum tools install scc
lum tools status scc
lum tools version scc
lum tools update scc
lum tools sync
lum tools sync --dry-runList stations:
lum radioPlay a station by code:
lum radio <station>Scan a directory tree for Git repository status:
lum repos scan <directory>By default this fetches each current branch's upstream remote before reporting ahead/behind status. Use --offline to compare against cached remote refs only.
Mirror configured repositories:
lum repos mirror init
lum repos mirror config-path
lum repos mirror sync
lum repos mirror statusManage folder-based Git author/SSH identities:
lum git-id init
lum git-id config-path
lum git-id sync
lum git-id status
lum git-id where
lum git-id info <identity>
lum git-id pubkey <identity>
lum git-id pathsSee src/git_id/README.md for config shape, ownership markers, generated files, and routing behavior.
You need Rust installed.
git clone https://github.com/ppowo/lum.git
cd lum
cargo build --releaseFor local development installs in this repository, use:
cargo local-installSee LICENSE.