homebutler
π Manage your homelab from chat. Single binary, zero dependencies.
File Explorer
- bug_report.md
- feature_request.md
- ci.yml
- release.yml
- pull_request_template.md
- demo-chat.png
- demo-thumbnail.png
- doctor-card.svg
- icon-128.png
- icon-256.png
- icon-512.png
- install-demo.gif
- logo.png
- mascot-full.png
- mascot.png
- mcp-results.jpg
- mcp-tool-calls.jpg
- README.md
- report-card.svg
- social-preview.html
- social-preview.png
- web-dashboard.png
- alerts.go
- backup.go
- config.go
- deploy.go
- docker.go
- doctor.go
- helpers.go
- init.go
- init_cmd.go
- install.go
- inventory.go
- inventory_test.go
- mcp.go
- network.go
- notify.go
- ports.go
- processes.go
- report.go
- root.go
- root_test.go
- serve.go
- status.go
- trust.go
- upgrade.go
- version.go
- wake.go
- watch.go
- demo-tui.gif
- fake.go
- backup.md
- configuration.md
- mcp-server.md
- multi-server.md
- web-dashboard.md
- alerts.go
- alerts_test.go
- container.go
- history.go
- initprompt.go
- initprompt_test.go
- notify.go
- notify_test.go
- playbook.go
- playbook_test.go
- rules.go
- rules_test.go
- watcher.go
- watcher_test.go
- webhook.go
- backup.go
- backup_test.go
- drill.go
- drill_test.go
- health.go
- restore.go
- config.go
- config_test.go
- validate.go
- validate_test.go
- docker.go
- docker_test.go
- doctor.go
- doctor_test.go
- human.go
- human_test.go
- install.go
- install_test.go
- lsof-macos.txt
- ss-linux.txt
- inventory.go
- inventory_test.go
- portparse_fixture_test.go
- render.go
- capabilities.go
- demo.go
- demo_test.go
- mcp_test.go
- server.go
- watch_check_test.go
- scan.go
- scan_test.go
- config.go
- dispatcher.go
- dispatcher_test.go
- event.go
- provider.go
- provider_test.go
- ports.go
- ports_test.go
- checksum_test.go
- deploy.go
- extract.go
- remote_test.go
- ssh.go
- ssh_test.go
- upgrade.go
- report.go
- report_test.go
- .gitkeep
- demo.go
- server.go
- server_test.go
- style.go
- style_test.go
- processes.go
- processes_test.go
- status.go
- status_test.go
- fetch.go
- model.go
- model_test.go
- sparkline.go
- sparkline_test.go
- styles.go
- cmd.go
- cmd_test.go
- docker.go
- docker_test.go
- permissions.go
- shellquote.go
- shellquote_test.go
- wol.go
- wol_test.go
- analysis.go
- analysis_test.go
- detector.go
- detector_test.go
- docker_monitor.go
- docker_monitor_test.go
- flapping.go
- flapping_test.go
- monitor.go
- notify.go
- notify_test.go
- pm2_monitor.go
- pm2_monitor_test.go
- stderr.go
- store.go
- store_test.go
- systemd_monitor.go
- systemd_monitor_test.go
- watchconfig.go
- watchconfig_test.go
- install.js
- LICENSE
- package.json
- README.md
- run.js
- SKILL.md
- logo.png
- AlertCard.svelte
- api.js
- ConfigCard.svelte
- DockerCard.svelte
- PortsCard.svelte
- ProcessCard.svelte
- ServerOverviewCard.svelte
- StatusCard.svelte
- WakeCard.svelte
- app.css
- App.svelte
- main.js
- index.html
- package-lock.json
- package.json
- svelte.config.js
- vite.config.js
- .gitignore
- .golangci.yml
- .goreleaser.yaml
- CHANGELOG.md
- CLAUDE.md
- CONTRIBUTING.md
- Dockerfile
- glama.json
- go.mod
- go.sum
- homebutler.example.yaml
- install.sh
- LICENSE
- llms.txt
- main.go
- Makefile
- README.md
- server.json
# Use via CDN
jsDelivrjsDelivr serves any public GitHub repository as a CDN with zero setup. Pick a version and a file to get a ready-to-paste link and snippet.
Command Glossary
Commands referenced in this DOCs, explained below.
brew install
View Details βΌ
brew install
Install a Homebrew formula or cask.
brew install {{formula|cask}}
Install a formula/cask:
brew install {{[-s|--build-from-source]}} {{formula}}
Build and install a formula from source (dependencies will still be installed from bottles):
brew install {{[-n|--dry-run]}} {{formula|cask}}
Download the manifest, print what would be installed but don't actually install anything:
docker compose up
View Details βΌ
docker compose up
Start and run Docker services defined in a Compose file.
docker compose up
Start all services defined in the docker-compose file:
docker compose up {{[-d|--detach]}}
Start services in the background (detached mode):
docker compose up --build
Start services and rebuild images before starting:
docker logs
View Details βΌ
docker logs
This command is an alias of `docker container logs`.
tldr docker container logs
View documentation for the original command:
docker stop
View Details βΌ
docker stop
This command is an alias of `docker container stop`.
tldr docker container stop
View documentation for the original command:
docker
View Details βΌ
docker
Manage Docker containers and images.
Some subcommands such as `container` and `image` have their own usage documentation.
docker {{[ps|container ls]}} {{[-a|--all]}}
List all Docker containers (running and stopped):
docker {{[run|container run]}} --name {{container_name}} {{image}}
Start a container from an image, with a custom name:
docker container {{start|stop}} {{container_name}}
Start or stop an existing container:
filebrowser
View Details βΌ
filebrowser
Simple HTTP web server to manage files and directories.
filebrowser
Start a new server instance serving the current directory:
filebrowser {{[-r|--root]}} {{path/to/directory}}
Start a new server instance serving a specific root directory:
filebrowser {{[-a|--address]}} {{host}} {{[-p|--port]}} {{port}} {{[-r|--root]}} {{path/to/directory}}
Start an instance with different host address (defaults to `127.0.0.1`) and port (defaults to `8080`):
git clone
View Details βΌ
git clone
Clone an existing repository.
git clone {{remote_repository_location}} {{path/to/directory}}
Clone an existing repository into a new directory (the default directory is the repository name):
git clone --recursive {{remote_repository_location}}
Clone an existing repository and its submodules:
git clone {{[-n|--no-checkout]}} {{remote_repository_location}}
Clone only the `.git` directory of an existing repository:
gitea
View Details βΌ
gitea
Administer Gitea, a lightweight Git hosting server.
Requires a configured `app.ini` file or environment variables.
gitea web
Run the Gitea web server using the default configuration:
gitea migrate
Create the necessary database schema and tables:
gitea admin {{user list}}
Run administrative subcommands for user management or authentication management:
go install
View Details βΌ
go install
Compile and install packages named by the import paths.
go install
Compile and install the current package:
go install {{path/to/package}}
Compile and install a specific local package:
go install {{golang.org/x/tools/gopls}}@{{latest}}
Install the latest version of a program, ignoring `go.mod` in the current directory:
npm install
View Details βΌ
npm install
Install Node packages.
npm {{[i|install]}}
Install dependencies listed in `package.json`:
npm {{[i|install]}} {{package_name}}@{{version}}
Download a specific version of a package and add it to the list of dependencies in `package.json`:
npm {{[i|install]}} {{package_name}} {{[-D|--save-dev]}}
Download the latest version of a package and add it to the list of dev dependencies in `package.json`:
npx
View Details βΌ
npx
This command is an alias of `npm exec`.
tldr npm exec
View documentation for the original command:
tar
View Details βΌ
tar
Archiving utility.
Often combined with a compression method, such as `gzip` or `bzip2`.
tar cf {{path/to/target.tar}} {{path/to/file1 path/to/file2 ...}}
[c]reate an archive and write it to a [f]ile:
tar czf {{path/to/target.tar.gz}} {{path/to/file1 path/to/file2 ...}}
[c]reate a g[z]ipped archive and write it to a [f]ile:
tar czf {{path/to/target.tar.gz}} {{[-C|--directory]}} {{path/to/directory}} .
[c]reate a g[z]ipped (compressed) archive from a directory using relative paths:
timeout
View Details βΌ
timeout
Run a command with a time limit.
timeout 3s sleep 10
Run `sleep 10` and terminate it after 3 seconds:
timeout {{[-s|--signal]}} {{INT|HUP|KILL|...}} {{5s}} {{sleep 10}}
Send a signal to the command after the time limit expires (`TERM` by default, `kill -l` to list all signals):
timeout {{[-v|--verbose]}} {{0.5s|1m|1h|1d|...}} {{command}}
Send verbose output to `stderr` showing signal sent upon timeout:
watch
View Details βΌ
watch
Execute a program periodically and monitor the output in full-screen mode.
watch {{command}}
Repeatedly run a command and show the result:
watch {{[-n|--interval]}} 60 {{command}}
Re-run a command every 60 seconds:
watch {{[-d|--differences]}} df
Monitor disk space, highlighting differences as they appear:
ports
View Details βΌ
ports
Update/list the ports tree on a CRUX system.
ports -u
Update the ports tree:
ports -l
List the ports in the current tree:
ports -d
Check the differences between installed packages and the ports tree:
