Skip to content

vcheckk/squarebox

Β 
Β 

Repository files navigation

πŸŸ§πŸ“¦ squarebox

Containerised dev environment packed with modern CLI/TUI tools and AI coding assistants. Batteries included.

Curated Rust/Go replacements for everyday Unix tools, multiple AI-powered editors, and sensible defaults, all in a reproducible Docker container you can spin up on any machine.

squarebox first-run setup For demonstration purposes only β€” actual setup may involve more staring at the screen.

Prerequisites

Install

curl -fsSL https://raw.githubusercontent.com/SquareWaveSystems/squarebox/main/install.sh | bash

This clones the repo, builds the Docker image, and drops you into the container. On first login, a setup script runs automatically to configure git, GitHub CLI, your choice of AI coding assistant, and language SDKs.

Start

squarebox        # or: sqrbx

Shell aliases are added automatically for Bash, Zsh, and PowerShell 7+.

The container is persistent: it suspends on exit and resumes on start, keeping installed packages, config, and shell history intact between sessions. Your code lives on the host at ~/squarebox/workspace via volume mount, so it survives even if the container is deleted.

What's included

CLI Tools

Name Language Description
bat Rust Cat clone with syntax highlighting
curl C URL data transfer
delta Rust Syntax-highlighting pager for git diffs
eza Rust Modern ls replacement
fd Rust Fast, user-friendly find alternative
fzf Go Fuzzy finder
gh Go GitHub CLI
glow Go Terminal markdown renderer
gum Go Tool for shell scripts and dotfiles
jq C JSON processor
nano C Default text editor
ripgrep Rust Fast recursive grep
starship Rust Cross-shell prompt
xh Rust Friendly HTTP client
yq Go YAML/JSON/XML processor
zoxide Rust Smarter cd command

TUI Tools

Name Language Description
gh-dash Go GitHub dashboard for the terminal
lazygit Go Git terminal UI
yazi Rust Terminal file manager

AI Coding Assistants (optional)

Installed during first-run setup. Choose any combination:

Name Language Description
Claude Code TypeScript AI coding assistant
GitHub Copilot CLI TypeScript GitHub Copilot in the terminal *
Google Gemini CLI TypeScript Google Gemini in the terminal *
OpenAI Codex CLI TypeScript OpenAI Codex in the terminal *
opencode Go AI coding TUI

* Requires Node.js (auto-installed if needed).

Text Editors (optional)

Installed during first-run setup. Nano is always available as the default editor.

Name Language Description
micro Go Modern, intuitive terminal editor
edit Rust Terminal text editor (Microsoft)
fresh Rust Modern terminal text editor
helix Rust Modal editor (Kakoune-inspired) β€” coming soon
nvim C/Lua Neovim

Aliases

Inspired by Omarchy.

Alias Command Description
ls eza --icons Modern ls with icons
ll eza -la --icons Long listing with icons
lsa ls -a (resolves to eza --icons -a) List all including hidden files
lt eza --tree --level=2 --long --icons --git Tree view with git status
lta lt -a Tree view including hidden files
cat bat --paging=never Syntax-highlighted cat
ff fzf --preview 'bat ...' Fuzzy find with preview
eff $EDITOR "$(ff)" Fuzzy find and edit
.. cd .. Go up one directory
... cd ../.. Go up two directories
.... cd ../../.. Go up three directories
c first selected AI tool Launch selected AI assistant
g git Git shorthand
gcm git commit -m Commit with message
gcam git commit -a -m Stage all and commit
gcad git commit -a --amend Stage all and amend
lg lazygit Launch lazygit
claude-yolo claude --dangerously-skip-permissions Claude without prompts
opencode-yolo opencode --dangerously-skip-permissions OpenCode without prompts

SDKs (optional)

Selected during first-run setup. Choose any combination, all, or none:

SDK Installed via
Node.js nvm
Python uv
Go go.dev
.NET dotnet-install

Selections are saved to the workspace volume and reused automatically on container rebuilds.

Update

Quick update (from inside the container)

sqrbx-update

Checks all GitHub-released tools against latest versions and updates them in-place. No rebuild required. Your container state, SDKs, and config are preserved.

sqrbx-update              # show available updates (dry run)
sqrbx-update --apply      # download and install all updates
sqrbx-update lazygit      # update a single tool
sqrbx-update --list       # list all tools and current versions

Set GITHUB_TOKEN to avoid API rate limits.

Full rebuild (from the host)

sqrbx-rebuild

Pulls the latest changes, rebuilds the image, and replaces the container. Your code in ~/squarebox/workspace is safe since it lives on the host. Setup selections (AI tool, editors, SDKs, GitHub auth) are persisted in the workspace volume and restored automatically. However, shell history, manually installed packages, and custom config files inside the container are lost.

What survives a rebuild

Survives Lost
Code in ~/squarebox/workspace (host volume) Shell history (~/.bash_history)
Starship and lazygit config (host volume) Manually installed apt packages
AI tool / editor / SDK selections Custom dotfiles in /home/dev/
GitHub CLI auth Caches and temp files
SSH keys (read-only mount from host)

To preserve extra files across rebuilds, store them in /workspace/.squarebox/.

Tip: Use sqrbx-update from inside the container to update tools without rebuilding. Only use sqrbx-rebuild when the base image itself needs to change (new apt packages, new base tools, Dockerfile changes).

Disk usage

The base image (all CLI/TUI tools, no optional components) is ~400 MB on disk.

First-run selections add to that:

Component Adds
Claude Code ~300 MB
GitHub Copilot CLI ~50 MB
Google Gemini CLI ~50 MB
OpenAI Codex CLI ~50 MB
OpenCode ~30 MB
micro / edit ~12 / ~7 MB
fresh / nvim ~10 / ~45 MB
Node.js ~90 MB
Python (uv) ~35 MB
Go ~500 MB
.NET ~800 MB

A typical setup (Claude Code + Node.js + one editor) lands around ~800 MB. Sizes are approximate and will vary as tools are updated.

Security

All binary tools are pinned to specific versions and verified against SHA256 checksums at build time. Third-party install scripts (Claude Code, uv, .NET) manage their own binary verification. npm-based AI tools (Copilot CLI, Gemini CLI, Codex CLI) use npm's built-in integrity verification.

For the full trust model (what install.sh does on your machine, how each layer is verified, and how to inspect the script before running it) see SECURITY.md.

Devcontainer / Codespaces

Open this repo in VS Code with the Dev Containers extension, or launch it in GitHub Codespaces. The included .devcontainer/devcontainer.json builds the full squarebox image automatically.

The interactive first-run setup is skipped in devcontainer mode. To configure AI tools or SDKs, run ~/setup.sh from the integrated terminal.

You can also attach to a running codespace directly from your local terminal using gh codespace ssh.

Uninstall

docker stop squarebox 2>/dev/null; docker rm squarebox
docker rmi squarebox
rm -rf ~/squarebox

Then remove the sqrbx and sqrbx-rebuild aliases from your shell config (~/.bashrc, ~/.zshrc, or ~/Documents/PowerShell/Microsoft.PowerShell_profile.ps1). Back up ~/squarebox/workspace first if you need your code.

About

Containerised dev environment packed with modern CLI/TUI tools and AI coding assistants. Batteries included.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Shell 93.0%
  • Dockerfile 7.0%