Skip to content

Added fff.nvim and updated latest def#203

Merged
connerohnesorge merged 5 commits into
mainfrom
fff
Dec 14, 2025
Merged

Added fff.nvim and updated latest def#203
connerohnesorge merged 5 commits into
mainfrom
fff

Conversation

@connerohnesorge

@connerohnesorge connerohnesorge commented Dec 13, 2025

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • New Features

    • Added NVIDIA GPU monitoring and performance analysis utilities
    • Integrated new editor plugins and development enhancements
  • Chores

    • Updated configuration hooks and system command handling
    • Pinned critical dependencies to specific versions for improved stability and reproducibility
    • Extended development environment with additional system packages and tools

✏️ Tip: You can customize this high-level summary in your review settings.

connerohnesorge and others added 5 commits December 13, 2025 15:33
Updates all conclaude hook commands to follow the new command structure
with explicit 'Hooks' namespace prefix.

🤖 Generated with Claude Code

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Adds the fff.nvim file manager plugin and pins the conclaude flake to a
specific commit hash for reproducibility. Updates flake.lock accordingly.

🤖 Generated with Claude Code

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Adds the fff.nvim file manager plugin and libcaca graphics library to the
engineer feature for development environments.

🤖 Generated with Claude Code

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Adds nvtopPackages.nvidia to the NVIDIA feature for GPU monitoring on
NVIDIA systems. Marks Intel monitoring as a TODO.

🤖 Generated with Claude Code

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Updates the message in the latest program to use proper grammar
('my changes' instead of 'all changes').

🤖 Generated with Claude Code

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Dec 13, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

Configuration updates across multiple files: Claude hooks settings are prefixed with "Hooks " command prefix; Nix flake inputs are extended with a pinned conclaude reference and new fff plugin; system packages are supplemented with libcaca and nvidia monitoring tools; a shell script command string is updated.

Changes

Cohort / File(s) Summary
Claude Hooks Configuration
.claude/settings.json
All hook command strings (PostToolUse, PreCompact, UserPromptSubmit, Stop, PreToolUse, SessionEnd, SubagentStop, SubagentStart, SessionStart, Notification) are prefixed with "Hooks " command invocation prefix; trailing newline added.
Nix Flake Inputs
flake.nix
conclaude.url pinned to specific git ref (8cf5aca...); new fff plugin input added (dmtrKovalenko/fff.nvim) with nixpkgs.follows constraint.
System Packages
modules/features/engineer.nix, modules/features/nvidia.nix
libcaca added to Linux environment systemPackages; inputs.fff appended to engineer environment; nvtopPackages.nvidia added to systemPackages alongside existing intel entry.
Latest Program Script
modules/programs/latest/latest.sh
cldk command argument updated from "commit and push all changes" to "commit and push all my changes".

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

  • Simple, homogeneous changes primarily consisting of string prefixes, package additions, and configuration updates across separate files.

Possibly related PRs

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately captures the two main changes: adding fff.nvim (flake.nix and modules) and updating the latest shell script definition.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fff

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.

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

🧹 Nitpick comments (1)
modules/features/nvidia.nix (1)

140-141: Good addition of nvidia monitoring tool.

Adding nvtopPackages.nvidia is appropriate for the NVIDIA feature module. The TODO comment on line 140 indicates that nvtopPackages.intel should be moved to a separate Intel module.

Would you like me to open an issue to track moving the Intel monitoring tool to a separate module?

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 98b883d and 5727e05.

⛔ Files ignored due to path filters (1)
  • flake.lock is excluded by !**/*.lock
📒 Files selected for processing (5)
  • .claude/settings.json (10 hunks)
  • flake.nix (2 hunks)
  • modules/features/engineer.nix (2 hunks)
  • modules/features/nvidia.nix (1 hunks)
  • modules/programs/latest/latest.sh (1 hunks)
🧰 Additional context used
📓 Path-based instructions (5)
modules/features/**/*.nix

📄 CodeRabbit inference engine (CLAUDE.md)

modules/features/**/*.nix: Use the delib.module pattern with singleEnableOption false for feature modules in modules/features/
Define platform-specific configuration in separate sections using nixos.ifEnabled, darwin.ifEnabled, and home.ifEnabled for feature modules

In Nix module files, use the delib.module pattern with singleEnableOption false for feature modules with platform-specific sections: nixos.ifEnabled, darwin.ifEnabled, home.ifEnabled

Files:

  • modules/features/engineer.nix
  • modules/features/nvidia.nix
**/*.{nix,rs,py}

📄 CodeRabbit inference engine (GEMINI.md)

Use nix fmt to format code using treefmt (alejandra for Nix, rustfmt for Rust, black for Python)

Files:

  • modules/features/engineer.nix
  • modules/features/nvidia.nix
  • flake.nix
**/*.nix

📄 CodeRabbit inference engine (AGENTS.md)

**/*.nix: Use alejandra formatting for Nix files
Prefer let...in blocks in Nix code
Use kebab-case for Nix attributes

Files:

  • modules/features/engineer.nix
  • modules/features/nvidia.nix
  • flake.nix
modules/**/*.nix

📄 CodeRabbit inference engine (AGENTS.md)

modules/**/*.nix: Use delib.module pattern for Nix modules
Use platform-specific sections: nixos.ifEnabled, darwin.ifEnabled, home.ifEnabled for multi-platform support

Files:

  • modules/features/engineer.nix
  • modules/features/nvidia.nix
**/*.{py,nix}

📄 CodeRabbit inference engine (AGENTS.md)

Use snake_case for file and function names

Files:

  • modules/features/engineer.nix
  • modules/features/nvidia.nix
  • flake.nix
🧠 Learnings (3)
📚 Learning: 2025-11-28T14:25:08.335Z
Learnt from: CR
Repo: connerohnesorge/dotfiles PR: 0
File: GEMINI.md:0-0
Timestamp: 2025-11-28T14:25:08.335Z
Learning: Each Nix module should be self-contained with minimal external dependencies

Applied to files:

  • modules/features/engineer.nix
📚 Learning: 2025-11-28T14:24:35.117Z
Learnt from: CR
Repo: connerohnesorge/dotfiles PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-28T14:24:35.117Z
Learning: Applies to modules/features/**/*.nix : Define platform-specific configuration in separate sections using `nixos.ifEnabled`, `darwin.ifEnabled`, and `home.ifEnabled` for feature modules

Applied to files:

  • modules/features/nvidia.nix
📚 Learning: 2025-11-28T14:24:35.117Z
Learnt from: CR
Repo: connerohnesorge/dotfiles PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-28T14:24:35.117Z
Learning: Applies to modules/features/**/*.nix : Use the `delib.module` pattern with `singleEnableOption false` for feature modules in `modules/features/`

Applied to files:

  • modules/features/nvidia.nix
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: Build (linux-x86_64)
  • GitHub Check: Build (macos-aarch64)
  • GitHub Check: Validate Templates (linux-x86_64)
  • GitHub Check: Validate Templates (macos-aarch64)
🔇 Additional comments (5)
modules/programs/latest/latest.sh (1)

3-3: LGTM!

The wording change from "all changes" to "all my changes" is clear and maintains the same functionality.

flake.nix (2)

13-13: Conclaude input pinned to specific commit.

The conclaude input is now pinned to commit 8cf5acab011b453d9762392f28e9a609b046670b. This is likely related to the hook command changes in .claude/settings.json.


75-77: LGTM! New fff.nvim plugin added.

The fff input is correctly configured with nixpkgs following. The plugin is properly integrated into the engineer module.

modules/features/engineer.nix (2)

99-99: Clarify the purpose of adding libcaca.

The libcaca package (an ASCII art library) has been added without explanation. Please clarify why this package is needed in the engineer feature module.

If libcaca is required by one of the other packages or tools, consider adding a comment explaining the dependency.


162-162: LGTM! fff.nvim package correctly integrated.

The fff input package is properly added to the Linux environment, aligning with the new input defined in flake.nix.

Comment thread .claude/settings.json
{
"type": "command",
"command": "conclaude PostToolUse"
"command": "conclaude Hooks PostToolUse"

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.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Find and examine flake.nix for conclaude pin
fd -name "flake.nix" -type f

Repository: connerohnesorge/dotfiles

Length of output: 298


🏁 Script executed:

#!/bin/bash
# Find and examine .claude/settings.json
fd -name "settings.json" -type f | grep claude

Repository: connerohnesorge/dotfiles

Length of output: 298


🏁 Script executed:

#!/bin/bash
# Find and examine flake.nix and settings.json
git ls-files | grep -E "(flake\.nix|settings\.json)"

Repository: connerohnesorge/dotfiles

Length of output: 785


🏁 Script executed:

#!/bin/bash
# Read flake.nix to find conclaude pin
cat flake.nix

Repository: connerohnesorge/dotfiles

Length of output: 9732


🏁 Script executed:

#!/bin/bash
# Read .claude/settings.json
cat .claude/settings.json

Repository: connerohnesorge/dotfiles

Length of output: 2430


🌐 Web query:

conclaude github connerohnesorge Hooks subcommand

💡 Result:

You’re looking for conclaude (by Conner Ohnesorge) — the Claude Code hook CLI and its hooks/subcommand support: GitHub repo: https://github.com/connix-io/conclaude. [1]

Docs/Cargo metadata (shows conclaude crate, description and repository link). [2]

Sources:

  • connerohnesorge / conclaude (README, usage, releases). [1]
  • conclaude crate metadata (docs.rs / Cargo.toml). [2]

🌐 Web query:

site:github.com connerohnesorge conclaude Hooks subcommand

💡 Result:

I couldn't find any GitHub repository or files matching "connerohnesorge conclaude" or that exact phrase (search returned other Claude Code hooks repositories but no connerohnesorge account/repo). Please check the spelling or share a link or more details and I'll search again. [1][2]

Sources:
[1] Example Claude Code hooks repos on GitHub (search results).
[2] Additional Claude Code hooks/tools on GitHub (search results).


🌐 Web query:

conclaude 8cf5acab011b453d9762392f28e9a609b046670b Hooks

💡 Result:

I couldn't find any public match for the exact string "8cf5acab011b453d9762392f28e9a609b046670b" (no matching commit or object in indexed repos). I did find a related project "conclaude" — a Claude Code hook-handler CLI (npm package) and documentation about Claude Code hooks. Do you want:

  • links/details for the conclaude npm package and hook docs, or
  • me to search a specific GitHub repo or paste the full URL/context for that SHA?

References: conclaude (npm/libraries.io) [1], Claude Code hook docs/guide [2].


🌐 Web query:

conclaude npm package hooks subcommand documentation

💡 Result:

conclaude’s hooks/subcommand docs — summary and usage

  • Purpose: conclaude is a Claude Code hook-handler CLI that reads JSON payloads on stdin and runs handlers for lifecycle hook events (PreToolUse, PostToolUse, Stop, UserPromptSubmit, SessionStart, SubagentStop, Notification, PreCompact). [1]

  • Config: uses cosmiconfig and YAML files (.conclaude.yaml / .conclaude.yml). Key config example: stop.run is a multi-line shell script run on Stop; rules.preventRootAdditions and rules.uneditableFiles control file-protection behavior. [1]

  • Commands / subcommands:

    • conclaude init (creates .conclaude.yaml and .claude/settings.json; supports --force and custom paths). [1]
    • conclaude — run a specific hook handler (e.g., conclaude PreToolUse, conclaude Stop). [1]
    • conclaude --help and conclaude --help for per-command help. [1]
  • Examples (manual testing via stdin JSON):

    • Test Stop hook:
      echo '{"session_id":"test","transcript_path":"/tmp/test.jsonl","hook_event_name":"Stop","stop_hook_active":true}' | conclaude Stop. [1]
    • Test PreToolUse hook:
      echo '{"session_id":"test","transcript_path":"/tmp/test.jsonl","hook_event_name":"PreToolUse","tool_name":"Write","tool_input":{"file_path":"test.txt"}}' | conclaude PreToolUse. [1]
  • Exit codes:

    • 0 = success (allow proceed)
    • 1 = error (validation/parsing/handler crash)
    • 2 = blocked (hook explicitly blocked the operation). [1]

Sources

  • conclaude package README / documentation summary (package page). [1]
  • Libraries.io / package metadata summary. [2]

If you want, I can fetch the raw README or the package’s GitHub repo and show the exact subcommand help output (conclaude --help / conclaude Stop --help).


🏁 Script executed:

#!/bin/bash
# Extract just the hook command lines to see the exact pattern
sed -n '26p;37p;48p;59p;70p;81p;92p;103p;114p;125p' .claude/settings.json

Repository: connerohnesorge/dotfiles

Length of output: 597


All hook commands use incorrect syntax and will fail at runtime.

The hook commands in .claude/settings.json incorrectly use conclaude Hooks <HookType> when the correct syntax is conclaude <HookType>. Update all 10 hook commands:

  • Line 26: change conclaude Hooks PostToolUse to conclaude PostToolUse
  • Line 37: change conclaude Hooks PreCompact to conclaude PreCompact
  • Line 48: change conclaude Hooks UserPromptSubmit to conclaude UserPromptSubmit
  • Line 59: change conclaude Hooks Stop to conclaude Stop
  • Line 70: change conclaude Hooks PreToolUse to conclaude PreToolUse
  • Line 81: change conclaude Hooks SessionEnd to conclaude SessionEnd
  • Line 92: change conclaude Hooks SubagentStop to conclaude SubagentStop
  • Line 103: change conclaude Hooks SubagentStart to conclaude SubagentStart
  • Line 114: change conclaude Hooks SessionStart to conclaude SessionStart
  • Line 125: change conclaude Hooks Notification to conclaude Notification
🤖 Prompt for AI Agents
In .claude/settings.json around lines 26–125 the hook "command" values use the
wrong syntax "conclaude Hooks <HookType>" and will fail; for each listed line
replace "conclaude Hooks <HookType>" with "conclaude <HookType>" (i.e., change
line 26 to "conclaude PostToolUse", line 37 to "conclaude PreCompact", line 48
to "conclaude UserPromptSubmit", line 59 to "conclaude Stop", line 70 to
"conclaude PreToolUse", line 81 to "conclaude SessionEnd", line 92 to "conclaude
SubagentStop", line 103 to "conclaude SubagentStart", line 114 to "conclaude
SessionStart", and line 125 to "conclaude Notification") and save the file.

@connerohnesorge connerohnesorge merged commit be8425f into main Dec 14, 2025
8 checks passed
@connerohnesorge connerohnesorge deleted the fff branch December 14, 2025 11:04
@coderabbitai coderabbitai Bot mentioned this pull request Jan 21, 2026
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