apogee
apogee emits cross-shell shell initialization (env vars, PATH edits, aliases, functions, and templates) from a single TOML config and runtime detection.
- Config:
~/.config/apogee/config.toml - Typical usage: load once per shell session, then use the emitted functions/aliases.
Status: pre-alpha. Expect breaking changes.
Install
From crates.io (recommended)
Ensure ~/.cargo/bin is on your PATH:
Verify:
From source (dev)
From the repo root:
Run without installing (dev)
Quick start
zsh / bash
fish
apogee | source
PowerShell
. ([ScriptBlock]::Create((& apogee | Out-String)))
Testing in a clean environment (recommended)
These commands launch each shell with a minimal environment so you can validate Apogee emissions without your normal dotfiles interfering.
Note:
TERMis intentionally provided here soclearworks in the clean shell. In your final setup, terminal defaults should come from your terminal/rc files, not from apogee.
zsh (clean)
Inside the shell:
bash (clean)
Inside the shell:
fish (clean)
Inside fish:
apogee | source
PowerShell (clean)
PWSH_BIN=""
Inside PowerShell:
. ([ScriptBlock]::Create((& apogee | Out-String)))
Quick smoke checks (after loading)
These help confirm apogee actually loaded.
zsh / bash
fish
functions -q pkg; and echo "pkg ok"
functions -q python_projects; and python_projects
echo $PACKAGES
PowerShell
Get-Command pkg -ErrorAction SilentlyContinue
Get-Command python_projects -ErrorAction SilentlyContinue
$env:PACKAGES
Avoiding command shadowing during testing
Because apogee may emit an alias/function named apogee (for cd), you may accidentally shadow the binary.
When you want to be certain you’re running the installed binary:
zsh / bash
fish
command apogee | head -n 5
PowerShell
& (Get-Command apogee -CommandType Application).Source | Out-String
If in doubt, call it explicitly:
- mac/linux:
$HOME/.cargo/bin/apogee
Developer workflow
Format + check
Print output for a specific shell
APOGEE_SHELL=zsh |
APOGEE_SHELL=bash |
APOGEE_SHELL=fish |
APOGEE_SHELL=pwsh |
License
MIT