Crate sidekick

Crate sidekick 

Source
Expand description

Sidekick: Claude Code hook handler and Neovim integration.

This crate provides two main functionalities:

  1. Claude Code Hook Handler: Prevents file modifications when files are being edited in Neovim with unsaved changes
  2. Neovim Integration: Launches Neovim instances with deterministic socket paths

§Architecture

  • handler: Hook processing logic for Claude Code
  • hook: Data structures for hook protocol
  • action: Editor operations abstraction (buffer status, refresh, messages)
  • utils: Socket path computation and discovery
  • constants: Shared constants (timeouts, paths)

§Example: Using as a Library

use sidekick::action::{Action, neovim::NeovimAction};
use sidekick::utils;

// Find Neovim instances in current directory
let sockets = utils::find_matching_sockets().unwrap();
let action = NeovimAction::new(sockets);

// Check if file can be modified
let status = action.buffer_status("file.txt").unwrap();
if !status.has_unsaved_changes {
    // Safe to modify file
}

Modules§

action
Editor action abstractions for interacting with text editors.
constants
Constants used throughout the application.
handler
Hook processing logic for Claude Code integration.
hook
Data structures for Claude Code hook protocol.
utils
Socket path utilities for Neovim instance discovery.