squarebox

skill
Guvenlik Denetimi
Basarisiz
Health Gecti
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 24 GitHub stars
Code Basarisiz
  • rm -rf — Recursive force deletion command in scripts/e2e-test.sh
  • rm -rf — Recursive force deletion command in scripts/lib/tool-lib.sh
  • rm -rf — Recursive force deletion command in scripts/squarebox-update.sh
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

Docker container for development, stuffed with modern CLI/TUI tools. Batteries included.

README.md

🟧📦 squarebox

A curated set of modern CLI/TUI tools and AI coding assistants in a container. Batteries included.

For developers who live in the terminal but need to work across
multiple platforms and devices.

squarebox packages a complete terminal-based development environment
into a single container (Docker or Podman): modern CLI tools, AI coding
assistants, language SDKs, and an opinionated set of shell aliases. Run the
same box anywhere (desktop, VPS, or Codespace) and SSH in from your laptop,
tablet, or phone (please don't).

The goal is to make modern terminal tooling easy and accessible. One-line
install, interactive first-run setup, sensible defaults (thanks omarchy).

squarebox first-run setup
(Actual setup may involve more staring at the screen.)

Prerequisites

The installer auto-detects which runtime is available. If both are installed, it
asks which to use. Override with SQUAREBOX_RUNTIME=docker or
SQUAREBOX_RUNTIME=podman.

Don't have Docker or Podman? One-line install

macOS (via Homebrew):

brew install --cask docker-desktop

Linux (official convenience script - inspect it first at get.docker.com):

curl -fsSL https://get.docker.com | sh && sudo usermod -aG docker $USER

Log out and back in (or run newgrp docker) so your shell picks up the new group.

Windows (via winget, in PowerShell 7+):

winget install --id Docker.DockerDesktop -e

On macOS and Windows, start Docker Desktop once after install so the daemon is
running before you continue.

Install

These commands clone the repo, build the container image, and drop you into the
container (if possible). On first login, a setup script runs automatically to
configure git (pulling your name and email from the host's global git config
if available), optionally sign in to GitHub CLI, your choice of AI coding
assistant, and language SDKs.

Stable

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

Edge

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

Stable installs the latest tagged release (pre-release tags like -rc are skipped). Edge uses the latest commit on main.

If the install fails or you want to see the full docker build and git output, re-run with --verbose:

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

Windows (PowerShell 7+)

Windows users can install directly from PowerShell - no Git Bash required.
This handles clone, build, container creation, and PowerShell aliases
(sqrbx, squarebox, etc.) natively:

irm https://raw.githubusercontent.com/SquareWaveSystems/squarebox/main/install.ps1 | iex

Once installed, you can re-run or pass flags from the local copy:

.\install.ps1              # re-install / update
.\install.ps1 -Edge        # latest main instead of latest release
.\install.ps1 -Verbose     # show full build output

Note: irm ... | iex does not support flags - PowerShell interprets them
as arguments to Invoke-Expression, not the script. Use the local
.\install.ps1 form for -Edge or -Verbose.

Start

squarebox        # or: sqrbx

These are shell functions wrapping docker start -ai squarebox (or
podman start -ai squarebox), 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 and tool config live on the host under ~/squarebox (workspace/ for
code, .config/ for tool config) via volume mounts, so they survive 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

What's optional

Selected during first-run setup. Choose any combination, all, or none.
Selections are saved to the workspace volume and reused automatically on
container rebuilds.

AI Coding Assistants

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

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

TUI Tools

Installed during first-run setup. Choose any combination:

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

Terminal Multiplexers

Installed during first-run setup. Choose either, both, or neither:

Name Description
tmux Classic terminal multiplexer
zellij Friendly terminal workspace

SDKs

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

Aliases

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 (if installed)
claude-yolo claude --dangerously-skip-permissions Claude without prompts
opencode-yolo opencode --dangerously-skip-permissions OpenCode without prompts

Multiplexer Keybindings (Experimental)

Both tmux and zellij ship with Omarchy-inspired defaults and matching keybindings:

Feature Tmux Zellij
Config path ~/.config/tmux/tmux.conf ~/.config/zellij/config.kdl
Prefix Ctrl+Space Ctrl+Space (Tmux mode)
Pane navigation Ctrl+Alt+Arrow Ctrl+Alt+Arrow
Pane resizing Ctrl+Alt+Shift+Arrow Ctrl+Alt+Shift+Arrow
Tab/window select Alt+1-9 Alt+1-9
Tab/window cycle Alt+Left/Right Alt+Left/Right
Split horizontal prefix h prefix h
Split vertical prefix v prefix v
Scrollback 50,000 lines 50,000 lines
Copy mode Vi keys Vi-style scroll
Theme Blue accent, top bar Blue accent, compact layout

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

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 (on host, forwarded via agent)

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 (CLI tools only, no optional components) is ~370 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
lazygit / gh-dash / yazi ~10 / ~10 / ~10 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

Base image tools are pinned to specific versions and verified against SHA256
checksums when the Docker image is built, so docker build is reproducible.

Optional tools selected during first-run setup (editors, TUIs, OpenCode, nvm,
Go, zellij) install the latest upstream release at the time you run setup. The
trust model is the same as running each tool's installer yourself: HTTPS
downloads from the project's official GitHub release (or upstream server). You
get new features without waiting for a squarebox release, at the cost of
build-time pinning for that tier.

Third-party install scripts (Claude Code, uv, .NET) delegate to the vendor
installer. 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.

Make it your own

squarebox is meant to be a starting point, not a finished product. Fork it,
swap out tools, add your own dotfiles, change the theme - build the dev
environment that fits the way you work. The Dockerfile is intentionally
straightforward and the tool registry (scripts/lib/tools.yaml) makes it easy
to add or remove tools. Use it as a base, take what's useful, and make it yours.

Yorumlar (0)

Sonuc bulunamadi