Skip to content

Latest commit

 

History

370 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sudo make me a sandwich!

What is in this repo?

  • Ingredients...
  • ...prepared the way I like it...
  • ...so that, I handcraft my sandwich...
  • ...quickly, even in a new kitchen

It also reminds me how I like my sandwich, coz sometimes I forget.

Borrowed from XKCD 149, BTW.

What is this not?

  • stuff that might not suit your workflow!
  • might not work for anything other than macosx as of now.

for future Harman

Complete the macOS first-run tasks

# 1. Sign in to iCloud.

# 2. Install all available updates from System Settings → General → Software Update.

# 3. Set the Mac hostname, replacing xxx when needed:
sudo scutil --set ComputerName "Ghost XXX"
sudo scutil --set LocalHostName "ghost-xxx"
sudo scutil --set HostName "ghost-xxx"

# 4. Install Homebrew and the bootstrap tools
# Install Homebrew from https://brew.sh/

# Make it available in the current shell
eval "$(/opt/homebrew/bin/brew shellenv)"

# 5. Install tools to bootstrap the repo
brew install just stow

# 6. Clone the repository
mkdir -p ~/code/github.com/hrmnjt
git clone https://github.com/hrmnjt/dev.git ~/code/github.com/hrmnjt/dev
cd ~/code/github.com/hrmnjt/dev

# Create the repository-local, Git-ignored model cache
mkdir -p _models

# 7. Install everything tracked in Brewfile
just brewinst

# 8. Deploy the dotfiles
just stowall

# 9. Install and configure Pi
# 9.1. Pi - https://pi.dev/docs/latest/quickstart#install
# 9.2. Install dependencies for pi
just pi-deps
# 9.3. Initialize Pi's intentional settings
if [[ ! -f ~/.pi/agent/settings.json ]]; then
  cp ~/.pi/agent/settings.template.json ~/.pi/agent/settings.json
fi
# 9.4. Build the Pi sandbox
just gondolin-image
# Restart the login shell, then continue with step 10
exec zsh -l

# 10. Configure Git and GitHub SSH
just gitsetup
just ghsshkey
# Add the copied public key at https://github.com/settings/keys
ssh -T git@github.com
# After SSH authentication succeeds, update this checkout:
git remote set-url origin git@github.com:hrmnjt/dev.git

# 11. Complete required app permissions
# 11.1. Grant AeroSpace Accessibility permission; see the aerospace/README.md
# 11.2. Grant Ghostty or the active terminal Accessibility and Automation
# permissions when using the Ivanti VPN commands; see the ivanti/README.md
# 11.3. Sign in to required browser, email, messaging, and work applications

# 12. Gruvbox macOS appearance
just macos-gruvbox

# 13. Local models
# 13.1. Deploy the llama.cpp package based on llama/README.md
llm start
# 13.2. On first use in Pi, run /login llama.cpp
# 13.3. Use /llama to download or load a model, then select it with /model

# 14. Enable optional integrations
# 14.1. Install Pi's generated Herdr integration when using Herdr workspaces:
herdr integration install pi
herdr integration status
# 14.2. Activate the Stow-deployed Herdr default-tabs plugin:
herdr plugin link ~/.config/herdr/local-plugins/default-tabs
herdr plugin list --plugin hrmnjt.default-tabs
# 14.3. Brave configuration
# - Brave extensions: Bitwarden, Readwise Highlighter, and Dark Reader.
# - Install the Gruvbox Slate Brave theme.

Setup references

frequently performed operations

Managing packages

Install the package, add it to Brewfile with a descriptive comment, and verify that the bundle is complete:

brew install <package>
# Edit Brewfile
just brewcheck

Inspect packages installed locally but missing from Brewfile with:

just brewdiff

Remove untracked packages only after reviewing that output:

just brewclean

Local models

Bootstrap the llama.cpp router when local inference is needed. It starts without loading a model:

llm start
llm status

Then, inside Pi:

  1. Run /login llama.cpp once and accept the local default URL.
  2. Run /llama to download, load, or unload models.
  3. After loading a model, run /model and select its actual llama.cpp model ID.

_models/ is the single Git-ignored llama.cpp cache. Download and manage every model through /llama; do not maintain a separate manual GGUF layout. See the llama.cpp guide for router deployment, Hugging Face authentication, service checks, and model storage.

Add a top-level package or repository-local directory

Top-level names determine whether just stowall deploys a directory:

Form Meaning
<name>/ Stow package whose contents are symlinked into $HOME
_<name>/ Repository-local data or helpers that must not be Stowed

The [!_]*/ glob in Justfile enforces this convention. For example, llama/ is deployed, while _scripts/ and _models/ remain in the repository. Prefix new repository-local top-level directories with _.

About

hrmnjt's development environment with macos

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages