{"id":29942907,"url":"https://github.com/Veraticus/claude-code-ntfy","last_synced_at":"2025-08-03T02:08:10.809Z","repository":{"id":297493761,"uuid":"996885221","full_name":"Veraticus/claude-code-ntfy","owner":"Veraticus","description":"Claude Code bridge to ntfy.sh","archived":false,"fork":false,"pushed_at":"2025-06-26T16:34:44.000Z","size":162,"stargazers_count":23,"open_issues_count":1,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-26T17:39:57.496Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Veraticus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-05T15:59:43.000Z","updated_at":"2025-06-26T16:34:48.000Z","dependencies_parsed_at":"2025-06-05T19:43:56.993Z","dependency_job_id":"806ed84f-0a5a-4204-9c67-624ca23e54c1","html_url":"https://github.com/Veraticus/claude-code-ntfy","commit_stats":null,"previous_names":["veraticus/claude-code-ntfy"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Veraticus/claude-code-ntfy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Veraticus%2Fclaude-code-ntfy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Veraticus%2Fclaude-code-ntfy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Veraticus%2Fclaude-code-ntfy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Veraticus%2Fclaude-code-ntfy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Veraticus","download_url":"https://codeload.github.com/Veraticus/claude-code-ntfy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Veraticus%2Fclaude-code-ntfy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268484362,"owners_count":24257660,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-03T02:00:12.545Z","response_time":2577,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-03T02:08:04.315Z","updated_at":"2025-08-03T02:08:10.803Z","avatar_url":"https://github.com/Veraticus.png","language":"Go","funding_links":[],"categories":["SDK与开发工具"],"sub_categories":[],"readme":"# claude-code-ntfy\n\nA transparent wrapper for Claude Code that sends a notification when Claude needs your attention.\n\n## Features\n\n- 🔔 Single notification when Claude needs attention\n- 🔄 Transparent wrapping - preserves all Claude Code functionality\n- 💤 Intelligent inactivity detection\n- 🖥️ Cross-platform support (Linux/macOS)\n\n### Intelligent Inactivity Detection\n\nThe backstop timer provides smart notifications when Claude might need your attention:\n\n- **While Claude is outputting**: Timer is continuously reset\n- **When Claude stops**: A 30-second countdown begins\n- **If you start typing**: Timer is permanently disabled\n- **If Claude sent a bell**: Timer is disabled (you're already notified)\n- **After 30 seconds of inactivity**: ONE notification is sent\n\nThis ensures you're notified when Claude needs input, but not when you're actively working.\n\n## Installation\n\n### Go Install\n\n```bash\ngo install github.com/Veraticus/claude-code-ntfy/cmd/claude-code-ntfy@latest\n```\n\n### Build from Source\n\n```bash\ngit clone https://github.com/Veraticus/claude-code-ntfy\ncd claude-code-ntfy\nmake build\n```\n\n### NixOS / Nix\n\nClaude Code Ntfy can be installed on NixOS or any system with Nix package manager. This installation method provides a wrapper that automatically intercepts the `claude` command.\n\n#### Using Nix Flakes\n\n```bash\n# Run directly without installation\nnix run github:Veraticus/claude-code-ntfy -- --help\n\n# Install to user profile (hijacks the claude command)\nnix profile install github:Veraticus/claude-code-ntfy\n\n# Or in your flake.nix\n{\n  inputs = {\n    nixpkgs.url = \"github:NixOS/nixpkgs/nixos-unstable\";\n    claude-code-ntfy.url = \"github:Veraticus/claude-code-ntfy\";\n  };\n\n  outputs = { self, nixpkgs, claude-code-ntfy }: {\n    # For NixOS system configuration\n    nixosConfigurations.mysystem = nixpkgs.lib.nixosSystem {\n      modules = [\n        claude-code-ntfy.nixosModules.default\n        {\n          programs.claude-code-ntfy.enable = true;\n        }\n      ];\n    };\n  };\n}\n```\n\n#### Using Traditional Nix\n\n```bash\n# Build from source\nnix-build -E 'with import \u003cnixpkgs\u003e {}; callPackage ./default.nix {}'\n\n# Install using nix-env\nnix-env -f ./default.nix -i\n\n# Or add to configuration.nix\n{ pkgs, ... }:\nlet\n  claude-code-ntfy = pkgs.callPackage (pkgs.fetchFromGitHub {\n    owner = \"Veraticus\";\n    repo = \"claude-code-ntfy\";\n    rev = \"main\";\n    sha256 = \"sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\";\n  } + \"/default.nix\") { };\nin\n{\n  environment.systemPackages = [ claude-code-ntfy ];\n}\n```\n\n#### Home Manager Configuration\n\nFor user-level installation with configuration management:\n\n```nix\n{\n  programs.claude-code-ntfy = {\n    enable = true;\n    \n    # Optional: Define configuration\n    settings = {\n      ntfy_topic = \"my-claude-notifications\";\n      ntfy_server = \"https://ntfy.sh\";\n      backstop_timeout = \"30s\";\n    };\n  };\n}\n```\n\nThe Nix installation:\n- **Automatically hijacks the `claude` command** - no need to use `claude-code-ntfy`\n- Finds and wraps the original Claude Code installation from npm\n- Works with both NixOS system-wide and Home Manager user installations\n- Creates config at `~/.config/claude-code-ntfy/config.yaml` if settings are provided\n\n## Quick Start\n\n1. Set your ntfy topic:\n   ```bash\n   export CLAUDE_NOTIFY_TOPIC=\"my-claude-notifications\"\n   ```\n\n2. Run Claude Code:\n   ```bash\n   # If installed via Nix (automatically uses wrapper)\n   claude\n   \n   # If installed via Go or built from source\n   claude-code-ntfy\n   ```\n\n## Configuration\n\nConfigure via environment variables:\n\n- `CLAUDE_NOTIFY_TOPIC` - Ntfy topic for notifications (required)\n- `CLAUDE_NOTIFY_SERVER` - Ntfy server URL (default: https://ntfy.sh)\n- `CLAUDE_NOTIFY_BACKSTOP_TIMEOUT` - Inactivity timeout (default: 30s)\n- `CLAUDE_NOTIFY_QUIET` - Disable notifications (true/false)\n- `CLAUDE_NOTIFY_CLAUDE_PATH` - Path to the real claude binary\n\nOr use a config file at `~/.config/claude-code-ntfy/config.yaml`:\n\n```yaml\nntfy_topic: \"my-claude-notifications\"\nntfy_server: \"https://ntfy.sh\"\nbackstop_timeout: \"30s\"\nquiet: false\nclaude_path: \"/usr/local/bin/claude\"\n```\n\n## Development\n\nSimple development workflow:\n\n```bash\n# One-time setup\nmake install-tools  # Install required development tools\n\n# During development\nmake test          # Run tests with race detection\n\n# Before committing\nmake fix           # Auto-fix issues\nmake verify        # Run all checks\n```\n\nSee [docs/development.md](docs/development.md) for detailed development guide.\n\n## License\n\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVeraticus%2Fclaude-code-ntfy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FVeraticus%2Fclaude-code-ntfy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVeraticus%2Fclaude-code-ntfy/lists"}