| Crates.io | apogee |
| lib.rs | apogee |
| version | 0.1.2 |
| created_at | 2025-09-15 22:28:33.338954+00 |
| updated_at | 2026-01-05 19:37:44.816051+00 |
| description | Cross-shell config emitter for Orbit (aliases, PATH, env) via a single eval. |
| homepage | https://github.com/orbyts/apogee |
| repository | https://github.com/orbyts/apogee |
| max_upload_size | |
| id | 1840648 |
| size | 148,891 |
apogee emits cross-shell shell initialization (env vars, PATH edits, aliases, functions, and templates) from a single TOML config and runtime detection.
~/.config/apogee/config.tomlStatus: pre-alpha. Expect breaking changes.
cargo install apogee
Ensure ~/.cargo/bin is on your PATH:
export PATH="$HOME/.cargo/bin:$PATH"
Verify:
type -a apogee
From the repo root:
cargo install --path .
cargo run --quiet
eval "$(apogee)"
apogee | source
. ([ScriptBlock]::Create((& apogee | Out-String)))
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.
env -i HOME="$HOME" USER="$USER" LOGNAME="$USER" TERM="${TERM:-xterm-256color}" COLORTERM="${COLORTERM:-truecolor}" LANG="${LANG:-en_US.UTF-8}" PATH="$HOME/.cargo/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin" XDG_CONFIG_HOME="$HOME/.config" XDG_CACHE_HOME="$HOME/.cache" XDG_DATA_HOME="$HOME/.local/share" APOGEE_SHELL=zsh zsh -f
Inside the shell:
eval "$(apogee)"
env -i HOME="$HOME" USER="$USER" LOGNAME="$USER" TERM="${TERM:-xterm-256color}" LANG="${LANG:-en_US.UTF-8}" PATH="$HOME/.cargo/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin" XDG_CONFIG_HOME="$HOME/.config" XDG_CACHE_HOME="$HOME/.cache" APOGEE_SHELL=bash bash --noprofile --norc
Inside the shell:
eval "$(apogee)"
env -i HOME="$HOME" USER="$USER" LOGNAME="$USER" TERM="${TERM:-xterm-256color}" LANG="${LANG:-en_US.UTF-8}" PATH="$HOME/.cargo/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin" XDG_CONFIG_HOME="$HOME/.config" XDG_CACHE_HOME="$HOME/.cache" APOGEE_SHELL=fish fish --no-config
Inside fish:
apogee | source
PWSH_BIN="$(command -v pwsh || command -v powershell)"
env -i HOME="$HOME" USER="$USER" LOGNAME="$USER" TERM="${TERM:-xterm-256color}" LANG="${LANG:-en_US.UTF-8}" PATH="$HOME/.cargo/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin" XDG_CONFIG_HOME="$HOME/.config" XDG_CACHE_HOME="$HOME/.cache" APOGEE_SHELL=pwsh "$PWSH_BIN" -NoProfile
Inside PowerShell:
. ([ScriptBlock]::Create((& apogee | Out-String)))
These help confirm apogee actually loaded.
type pkg
type python_projects
echo "$PACKAGES"
functions -q pkg; and echo "pkg ok"
functions -q python_projects; and python_projects
echo $PACKAGES
Get-Command pkg -ErrorAction SilentlyContinue
Get-Command python_projects -ErrorAction SilentlyContinue
$env:PACKAGES
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:
command apogee
command apogee | head -n 5
& (Get-Command apogee -CommandType Application).Source | Out-String
If in doubt, call it explicitly:
$HOME/.cargo/bin/apogeecargo fmt
cargo clippy
cargo test
APOGEE_SHELL=zsh apogee | sed -n '1,200p'
APOGEE_SHELL=bash apogee | sed -n '1,200p'
APOGEE_SHELL=fish apogee | sed -n '1,200p'
APOGEE_SHELL=pwsh apogee | sed -n '1,200p'
MIT