n-cli
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Pass
- Code scan — Scanned 5 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
✉️ Send notifications - Discord, Slack, desktop, whatever - through your terminal. Integrates with popular LLM tools such as Codex, Claude Code and Cursor.
✉️ Notification CLI (n-cli) - Send notifications to yourself through the command line
Why stare at your laptop when you can go make yourself a coffee and have your computer/agent let you know when it's done compiling that monstrous 4GB monorepo?
🚀 Features
- Works out-of-the-box - no need to go through any external service (other than your chat apps, of course)
- Coding agent integration – get notifications when Cursor or Codex finishes its work or needs your approval
- Desktop notification
- Discord notification through Discord webhooks
- Slack notification through Slack workflow webhooks
- Custom webhook notification to any HTTP endpoint with configurable payloads and headers
- [Planned] Mobile app notification through our mobile app
Do open an issue if you're interested in a notification channel being implemented.
👨🏻💻 Installation
Through go install (easiest if you have Go 1.25+ installed):
go install github.com/lba-studio/n-cli@latest
If you don't have Go installed: download the latest release for your machine here: Releases
Which one should I download?
{version} refers to the current version of n-cli.
| MacOS Apple Silicon | MacOS Intel | Windows Intel 64-bit |
|---|---|---|
| n-cli-{version}-darwin-arm64.tar.gz | n-cli-{version}-darwin-amd64.tar.gz | n-cli-{version}-windows-amd64.tar.gz |
*Open an issue / PR if this table is wrong, thank you!
🐈 Usage
n-cli --help
# send "My message here" to your configured destinations. if you haven't configured n-cli, we'll setup a config for you
n-cli send My message here
n-cli s My message here
# example - make build takes 20 minutes to complete
make build; n-cli s "Build is done, stop making coffee"
# alternatively, run your shell command through n-cli
n-cli run make build
# make sure to use `--` if you'd like to pass in flags
n-cli r -- make build --whatever-args-i-have-here
# pro tip: you can set an alias to make the whole command shorter
alias n="n-cli s"
make build; n Build is done;
# integrations with LLM agents
n-cli setup cursor # set up Cursor hooks so you get notified when the agent finishes or session ends
n-cli setup codex # set up Codex hooks so you get notified when the agent finishes or needs approval
n-cli setup claude-code # set up Claude Code hooks so you get notified when the agent finishes or needs approval
# useful commands
n-cli init # optional: initializes & configures n-cli without running anything
n-cli where config # where is your config?
n-cli version # get version
🔌 Integrations
Cursor Agent
Get notifications when the Cursor Agent stops or when the session ends.
n-cli setup cursor # attaches n-cli to ~/.cursor/hooks.json
Codex
Get notifications when Codex finishes a turn (Stop) or is waiting for your approval (PermissionRequest).
n-cli setup codex # attaches n-cli to ~/.codex/hooks.json
After setup, restart Codex and review/trust the hooks with /hooks if prompted. Ensure n-cli stays on your PATH in the shell environment Codex uses.
Claude Code
Get notifications when the Claude Code agent finishes (Stop) or needs your approval (Notification with permission_prompt).
n-cli setup claude-code # attaches n-cli to ~/.claude/settings.json
After setup, restart Claude Code and review/trust the hooks with /hooks if prompted. Ensure n-cli stays on your PATH in the shell environment Claude Code uses.
📝 Configuration
Default config is at ~/.n-cli/config.yaml
discord: # if missing, n-cli won't use Discord as a notification channel
# https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks
webhookUrl: https://discord.com/api/webhooks/{yourwebhookurlhere} # required
messageFormat: "<@1234> {{message}}" # optional
slack: # if missing, n-cli won't use Slack as a notification channel
# you can create one by following the steps here https://slack.com/intl/en-gb/help/articles/360041352714-Create-workflows-that-start-with-a-webhook
# must have "message" as a variable. sample payload to the webhook: { "message": "{{message}}" }
webhookUrl: https://hooks.slack.com/triggers/ABCDEFG123/123456789/whateverstringishere # required
messageFormat: "{{message}}" # optional
custom: # if missing, n-cli won't use custom webhook as a notification channel
targetUrl: https://api.example.com/webhook # required - the webhook URL to call
payloadTemplate: '{"text": "{{message}}", "priority": "high"}' # required - template with {{message}} placeholder
method: POST # optional - HTTP method (default: POST), case-insensitive
headers: # optional - custom HTTP headers
Authorization: Bearer your-token-here
X-Custom-Header: custom-value
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found