Skip to content

feat(home-manager): add dev/observability CLIs and group into modules - #1873

Merged
shunkakinoki merged 2 commits into
mainfrom
claude/quirky-satoshi-02a3d6
May 30, 2026
Merged

feat(home-manager): add dev/observability CLIs and group into modules#1873
shunkakinoki merged 2 commits into
mainfrom
claude/quirky-satoshi-02a3d6

Conversation

@shunkakinoki

@shunkakinoki shunkakinoki commented May 30, 2026

Copy link
Copy Markdown
Owner

What

Adds a batch of developer and observability CLI tooling to the home-manager config, organized library-specifically (cohesive vendor/ecosystem toolchains as programs/ modules; unrelated single-vendor CLIs stay flat).

New programs/ modules

  • grafana - grafana-loki, grafana-alloy
  • vector - vector
  • protobuf - buf, ghz, grpcurl, protobuf
  • victoriametrics - victorialogs, victoriametrics, victoriatraces (moved from the flat list)

Extended existing modules

  • k8s - +stern
  • terraform - +opentofu

Flat additions to packages/default.nix (unrelated-vendor CLIs)

_1password-cli, angle-grinder, bandwhich, choose, croc, fx, gh-dash, git-absorb, gron, hexyl, iperf3, jnv, lnav, mtr, nmap, oha, opentelemetry-collector-contrib, process-compose, rclone, restic, sops, termshark, tig, trippy, websocat

Why

The original ask was to install a set of CLIs (Loki / observability led). Organized per the repo convention: cohesive vendor or single-technology toolchains become programs/<name> modules (like the existing k8s / prometheus / terraform); unrelated single-vendor CLIs stay flat in packages/default.nix.

Notes / decisions

  • Databases dropped - duckdb, usql, pgcli, harlequin, pgweb, atlas, dbmate, goose, sqlc were considered but excluded (not in use).
  • vmctl not added - nixpkgs vmctl is an NVMe/QEMU testing tool, not the VictoriaMetrics migration tool; the real vmctl already ships in the victoriametrics package.
  • Heavy daemons skipped - tempo, mimir, pyroscope, consul, nomad, vault.

Verification

  • nix fmt - clean (0 changed)
  • nix-instantiate --parse - all changed files OK
  • nix eval .#darwinConfigurations.aarch64-darwin.system.drvPath - evaluates to a valid derivation (config builds)

Summary by cubic

Adds developer and observability CLIs to Home Manager and groups ecosystem tools into vendor modules. Extends k8s and terraform, and keeps vector flat in packages.

  • New Features
    • New modules: grafana (grafana-loki, grafana-alloy), protobuf (buf, ghz, grpcurl, protobuf), victoriametrics (victorialogs, victoriametrics, victoriatraces).
    • Extended modules: k8s adds stern; terraform adds opentofu.
    • Standalone CLIs in packages/default.nix: _1password-cli, angle-grinder, bandwhich, choose, croc, fx, gh-dash, git-absorb, gron, hexyl, iperf3, jnv, lnav, mtr, nmap, oha, opentelemetry-collector-contrib, process-compose, rclone, restic, sops, termshark, tig, trippy, vector, websocat.

Written for commit 63082fb. Summary will update on new commits.

Review in cubic

@indent-zero

indent-zero Bot commented May 30, 2026

Copy link
Copy Markdown
Contributor
PR Summary

Bulk expansion of the home-manager package set with new developer and observability CLIs, plus reorganization of existing tools into topic modules so related multi-package toolchains live together. New per-topic modules are introduced for grafana, protobuf, and victoriametrics, while stern moves into programs/k8s and opentofu joins programs/terraform. A second commit drops the single-package programs/vector module and keeps vector flat in packages/default.nix to match the convention for single-binary tools.

  • Added ~30 new top-level CLIs to home-manager/packages/default.nix (e.g. _1password-cli, bandwhich, croc, fx, gh-dash, git-absorb, gron, hexyl, iperf3, jnv, lnav, mtr, nmap, oha, opentelemetry-collector-contrib, process-compose, rclone, restic, sops, termshark, tig, trippy, vector, websocat, ...).
  • Created programs/grafana (grafana-alloy, grafana-loki), programs/protobuf (buf, ghz, grpcurl, protobuf), and programs/victoriametrics (victorialogs, victoriametrics, victoriatraces); registered each in programs/default.nix in alphabetical order.
  • Moved stern out of the flat list into programs/k8s, and the victoria* trio into the new victoriametrics module (no duplicates remain).
  • Added opentofu alongside terraform in programs/terraform.
  • Removed the single-package programs/vector module introduced in the first commit and added vector flat to packages/default.nix instead.

Issues

1 potential issue found:

  • A coherent batch of networking CLIs (bandwhich, iperf3, mtr, nmap, oha, termshark, trippy, websocat) is added flat to packages/default.nix instead of grouped into a new programs/network (or similar) module, missing the same grouping pattern this PR establishes. → Autofix
2 issues already resolved
  • gh-dash and git-absorb are added to the flat packages/default.nix even though programs/gh and programs/git modules already exist — moving them would better match this PR's "group modules" goal.
  • opentelemetry-collector-contrib is added at the top of packages/default.nix rather than placed in one of the new observability modules (grafana, vector, or victoriametrics) it's conceptually paired with.

CI Checks

Waiting for CI checks...


⚡ Autofix All Issues

@mesa-dot-dev

mesa-dot-dev Bot commented May 30, 2026

Copy link
Copy Markdown

You do not have enough credits to review this pull request. Please purchase more credits to continue.

@coderabbitai

coderabbitai Bot commented May 30, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

This PR reorganizes Home Manager's package and program configuration by creating four new dedicated program modules for Grafana, Protobuf, Vector, and VictoriaMetrics; wiring them into the programs registry; and curating the base package list with new CLI tools while moving stern and victoria\* packages to their respective specialized modules.

Changes

Home Manager Program Module Reorganization

Layer / File(s) Summary
Wire new programs into registry
home-manager/programs/default.nix
Programs for grafana, protobuf, vector, and victoriametrics are imported in the let section and included in the returned programs list.
Implement grafana, protobuf, vector, and victoriametrics modules
home-manager/programs/grafana/default.nix, home-manager/programs/protobuf/default.nix, home-manager/programs/vector/default.nix, home-manager/programs/victoriametrics/default.nix
New Home Manager modules define package lists: grafana installs grafana-alloy and grafana-loki; protobuf installs buf, ghz, grpcurl, and protobuf; vector installs vector; victoriametrics installs victorialogs, victoriametrics, and victoriatraces.
Curate base packages and update specialized modules
home-manager/packages/default.nix, home-manager/programs/k8s/default.nix, home-manager/programs/terraform/default.nix
Base package list is expanded with new CLI tools (1Password, angle-grinder, bandwhich, choose, croc, fx, gh-dash, git-absorb, gron, hexyl, iperf3, jnv, lnav, mtr, nmap, oha, opentelemetry-collector-contrib, process-compose, rclone, restic, termshark, trippy, websocat) and pruned of stern and victoria\* packages which migrate to dedicated modules. Kubernetes module adds stern and Terraform module adds opentofu.

Possibly related PRs

  • shunkakinoki/dotfiles#1277: Both PRs modify the victoria\* package placement in the Home Manager configuration.
  • shunkakinoki/dotfiles#1387: Both PRs update home-manager/packages/default.nix by changing the primary package list with multiple CLI tool additions.
  • shunkakinoki/dotfiles#297: Both PRs modify the shared home-manager/packages/default.nix package list with CLI tool changes.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 New modules hop into place,
Grafana, Vector, Protobuf grace,
VictoriaMetrics finds its home,
While packages reorganize and roam,
A tidy warren, reorganized!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: adding developer and observability CLIs while organizing them into modules.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description check ✅ Passed The PR description is well-detailed and directly related to the changeset, explaining the organization strategy and rationale.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/quirky-satoshi-02a3d6

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request reorganizes and adds several packages and program modules to the Home Manager configuration. Key changes include moving VictoriaMetrics tools and Stern to dedicated program modules, adding new modules for Grafana and Protobuf, and introducing OpenTofu to the Terraform module. Feedback suggests moving the newly added 'vector' package directly to 'packages/default.nix' instead of creating a dedicated program module for it, in order to maintain consistency with the repository's convention for single-package tools.

Comment thread home-manager/programs/vector/default.nix Outdated
Comment thread home-manager/programs/default.nix Outdated
Comment thread home-manager/programs/default.nix Outdated
Comment thread home-manager/packages/default.nix
Comment thread home-manager/packages/default.nix
Comment thread home-manager/packages/default.nix
@mesa-dot-dev

mesa-dot-dev Bot commented May 30, 2026

Copy link
Copy Markdown

Mesa Description

TL;DR

Adds a suite of developer and observability CLI tools to the Home Manager configuration, organizing cohesive vendor toolchains into dedicated modules and installing standalone utilities flatly.

What changed?

  • home-manager/packages/default.nix: Added various standalone CLI utilities (such as _1password-cli, rclone, sops, and trippy) and removed stern and victoriametrics to move them to their respective modules.
  • home-manager/programs/default.nix: Imported and enabled new program modules for grafana, protobuf, vector, and victoriametrics.
  • home-manager/programs/grafana/default.nix: Created a new module to install grafana-alloy and grafana-loki.
  • home-manager/programs/k8s/default.nix: Added stern to the Kubernetes module.
  • home-manager/programs/protobuf/default.nix: Created a new module to install buf, ghz, grpcurl, and protobuf.
  • home-manager/programs/terraform/default.nix: Added opentofu to the Terraform module.
  • home-manager/programs/vector/default.nix: Created a new module to install vector.
  • home-manager/programs/victoriametrics/default.nix: Created a new module to install victorialogs, victoriametrics, and victoriatraces.

Notes / decisions

  • Databases dropped - duckdb, usql, pgcli, harlequin, pgweb, atlas, dbmate, goose, sqlc were considered but excluded (not in use).
  • vmctl not added - nixpkgs vmctl is an NVMe/QEMU testing tool, not the VictoriaMetrics migration tool; the real vmctl already ships in the victoriametrics package.
  • Heavy daemons skipped - tempo, mimir, pyroscope, consul, nomad, vault.

Verification

  • nix fmt - clean (0 changed)
  • nix-instantiate --parse - all changed files OK
  • nix eval .#darwinConfigurations.aarch64-darwin.system.drvPath - evaluates to a valid derivation (config builds)

Description generated by Mesa. Update settings

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 8 files

Re-trigger cubic

@shunkakinoki
shunkakinoki merged commit c9c567b into main May 30, 2026
36 of 37 checks passed
@shunkakinoki
shunkakinoki deleted the claude/quirky-satoshi-02a3d6 branch May 30, 2026 13:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant