Skip to content

Latest commit

 

History

69 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

personal-setup

Personal CachyOS desktop bootstrap, dotfiles, and local AI-tooling repository for rebuilding a machine with the same packages, services, shell setup, user configuration, and repo-local helper tools.

What’s in this repo

  • setup.py: interactive machine provisioning script (14 steps).
  • probe-hardware.py: captures target-machine hardware into hardware-info.toml.
  • collect-secrets.py: gathers credentials from the source machine into secrets/ for USB transfer.
  • media_transcribe.py: repo-local transcription tool exposed through the media-transcribe CLI.
  • packages-native.txt, packages-aur.txt: package inventories for pacman and yay.
  • vscode-extensions.txt: VS Code extensions installed by the setup script.
  • services-system.txt, services-user.txt: systemd units to enable.
  • chezmoi-source/: managed dotfiles and app configs.
  • system-config/: machine-level config files copied into /etc and related paths.
  • chezmoi-source/dot_local/share/system-ai/ufw/rules.txt: canonical UFW allow-list that chezmoi apply enforces via the ufw CLI.
  • secrets/: gitignored directory with credentials for transfer (created by collect-secrets.py).
  • pyproject.toml, uv.lock: the repo-local Python tool environment managed with uv.

Intended workflow

This repo assumes a fresh CachyOS install with Python 3.11+ and chezmoi used for user dotfiles. Hardware-specific packages are auto-detected from hardware-info.toml, credentials are transferred via a gitignored secrets/ directory, and local tools are expected to run through the repo-managed uv environment.

On the source machine (before copying to USB):

uv run python collect-secrets.py     # gathers Claude, git, SSH credentials into secrets/

On the target machine (from USB):

uv run python probe-hardware.py      # detect hardware for driver auto-install
uv run python setup.py               # run all steps or pick individual ones

setup.py can run all steps or a single numbered step. It handles package installation, service enablement, uv tool installation, VS Code extension installation, secret staging, Tailscale setup, chezmoi setup, hostname/shell changes, and selected system config application.

The repo now bootstraps a mixed AI coding setup:

  • ollama as the local model runtime, enabled as a system service.
  • aider-chat as a terminal coding harness, installed through uv tool.
  • Continue as a VS Code extension, configured via chezmoi-source/dot_continue/config.yaml.
  • Default mixed-model configs that use gpt-5 for stronger reasoning and qwen2.5-coder:14b through Ollama for local autocomplete and lighter edits.

For repo-local tools:

uv sync
uv run media-transcribe --help

The setup flow now includes an explicit Ollama model pull step. If you need to do it manually:

ollama pull qwen2.5-coder:14b

Hosted-model API keys are still user-specific. Set OPENAI_API_KEY in your shell environment before using Aider, and complete any key/sign-in prompts Continue shows on first launch.

For unattended Tailscale setup, store a Tailscale auth key in 1Password as system-ai Tailscale Auth Key before running uv run python collect-secrets.py. The target machine stages that key at ~/.local/state/system-ai/tailscale-auth-key.txt, passes it to tailscale up via an environment variable instead of embedding it directly in the command line, and deletes the staged file after a successful login. If no staged key is present, setup.py falls back to the normal interactive browser login flow.

Most tools are moving toward a common CLI shape with --json summaries and --log-format text|json support so AI agents and shell automation can consume them reliably.

Roadmap direction

  • Keep the current Python scripts practical for CachyOS/Linux today.
  • Structure inventories and shell-outs so Debian and macOS support can be added later without a rewrite.
  • Gradually migrate provisioning intent toward declarative tools such as Ansible, and possibly Terraform where it fits, while keeping this repo as the source of truth.

Safety notes

  • Review generated hardware data before installing GPU, microcode, or kernel-related packages.
  • Expect privileged operations: pacman, systemctl enable, copying into /etc, and regenerating initramfs.
  • hardware-info.toml is generated per-machine; review before committing host-specific data.
  • Applying chezmoi or system-config/ changes can overwrite existing local config.

Validation

Use these checks before committing changes:

uv run python -m py_compile setup.py
uv run python -m py_compile probe-hardware.py
git diff --check

For dotfile changes, preview with chezmoi diff before applying.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages