CLI toolbox containing all CLI tools I have made in one binary.
Capsus bundles three terminal tools, Munus, Cryptare and Salus, into a single capsus command for
people who use them together. Running capsus will open a menu that lists the tools with a short
description; selecting a tool launches that tool's own terminal UI (TUI), and a tool without a TUI
says so.
Status: in preparation. The launcher code is written, but no tool release exports the
pkg.Mainentry point it needs yet and the tools are not imported, so thecapsusbinary cannot be built. Everything under "Planned" below describes Plan 1, which is awaiting review. The build, test and release tooling in this repository already targets that layout.
| Tool | What it does | TUI | Source |
|---|---|---|---|
| Munus | Terminal task manager: tasks with deadlines, statuses and tags in a local SQLite database | Yes | jabbott-iii/Munus |
| Cryptare | Encrypt, decrypt, compress and extract files and folders; manage password-protected keys | Yes | jabbott-iii/Cryptare |
| Salus | Environment health checker: disk, memory, CPU, Docker, Kubernetes, services and certificates, with PASS/WARN/FAIL results | No (CLI only) | jabbott-iii/Salus |
Each tool's own README is the reference for its commands and options.
Not available yet: the launcher is written but cannot be built until the tools are imported; see intel/plan.md, decisions D-5 and D-6.
capsus: menu TUI listing each tool, its description and whether it has a TUI. Enter launches the tool's TUI and returns to the menu when it exits; for Salus the menu says it has no TUI. Outside a terminal it exits with 2 and points tocapsus listandcapsus <tool>.capsus list: the same list as plain text, for scripts.capsus munus|cryptare|salus [args...]: runs that tool's CLI with the arguments unchanged and exits with the tool's exit code. A tool's help shows the tool's own name (for examplemunus add). Arguments go after the tool name:capsus --vim munusis a usage error.capsus --vim: opens the menu and passes--vimto Munus and Cryptare.capsus --version(-v): the Capsus version and the bundled tool versions.- Capsus' own errors: exit 2 for an unknown tool, command or flag, and 1 when the menu cannot start or output cannot be written.
For building from source and running the checks:
- Go 1.26 (CI uses the latest 1.26 patch release)
- A C compiler: every tool stores data with
mattn/go-sqlite3, which needs CGO - GNU Make, bash and git
- Docker, only for
make docker-static(needs the planned Dockerfile)
There is no release yet. Once the import lands, build from source:
git clone https://github.com/jabbott-iii/Capsus.git
cd Capsus
make build # writes bin/capsusUntil then, make build stops with a message pointing to intel/plan.md. Release
archives will be published on the GitHub Releases page by the CD workflow; go install …@latest is
not supported because the root module uses replace directives for the tool folders.
Planned: the bundled tools keep their own configuration, so Capsus and the standalone binaries share data. The main settings are the database locations:
| Variable | Tool | Purpose |
|---|---|---|
MUNUS_DB_PATH |
Munus | Path of the task database |
CRYPTARE_DB_PATH |
Cryptare | Path of the key database |
SALUS_DB_PATH |
Salus | Path of the scan-history database |
When unset, each tool uses its default location in the per-user data directory; see each tool's README for details and further options.
Run make (or make help) for the full list. The main targets run in every module, the launcher
at the root and each tool folder:
make check # what CI runs: layout, key-material check, gofmt, go mod tidy, vet, golangci-lint, race tests, smoke test
make check-all # check plus gosec, govulncheck and actionlint
make test # tests only
make smoke # build bin/capsus and run scripts/smoke.sh against it
make deps-drift # report dependencies the capsus build uses at other versions than a tool's go.mod
make tool TOOL=Cryptare TARGET=golden # run one of a tool's own Makefile targets (release targets refused)Capsus/
├── Munus/ Cryptare/ Salus/ # planned: the tools, imported as git subtrees (own go.mod each)
├── main.go, internal/ # the capsus launcher and menu TUI (not buildable yet; see Status)
├── go.mod, go.sum # root module: requires the tools, replaced by their folders
├── scripts/smoke.sh # smoke test for a built capsus binary
├── Makefile # checks, build, smoke test, security scans, release tagging
├── .github/ # CI, security, Docker and CD workflows; Dependabot; PR template
└── intel/ # plan, architecture, map, security register, notes, history
See intel/map.md for the full map.
See CONTRIBUTING.md. Changes to a tool's code go to that tool's repository first. Capsus is licensed under the Apache License 2.0 (LICENSE).