id = "ntfy" name = "ntfy" homepage = "https://ntfy.sh" description = "ntfy lets you send push notifications to your phone or desktop via scripts from any computer, using simple HTTP PUT or POST requests." executables = ["ntfy"] [dotfiles] # The official CLI guide documents these per-user client.yml locations. The # file may contain default-user/default-password/default-token or per-topic # credentials, so it is treated as a whole-file secret. # https://docs.ntfy.sh/subscribe/cli/ paths = [] secret = [ "~/.config/ntfy/client.yml", "~/Library/Application Support/ntfy/client.yml", "%APPDATA%/ntfy/client.yml", ] [commands] format = 1 label = "ntfy" description = "Send a push notification to a topic. Subscribing, actions, attachments, authentication and templates are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false } [[commands.subcommand]] path = ["publish"] label = "Publish a message" description = "Publish a message to a topic (aliases: pub, send, trigger)." [[commands.subcommand.source]] id = "docs" kind = "manual" url = "https://docs.ntfy.sh/publish/" revision = "2026-10-27" evidence = """ntfy publish mytopic "Backup successful" ntfy publish \ --title "Unauthorized access detected" \ --tags warning,skull \ --priority urgent \ --click="https://home.nest.com/" \ --markdown \ --icon="https://styles.redditmedia.com/t5_32uhe/styles/communityIcon_xnt6chtnr2j21.png" \ --at="tomorrow, 10am" \ --in="5m" \ ntfy publish --in="2h" mytopic/break-reminder "Take a break!\"""" [[commands.subcommand.field]] id = "title" label = "Title" type = "string" option = ["--title"] sources = ["docs"] [[commands.subcommand.field]] id = "priority" label = "Priority" type = "string" option = ["--priority"] suggestions = [{ value = "min", label = "min" }, { value = "low", label = "low" }, { value = "default", label = "default" }, { value = "high", label = "high" }, { value = "urgent", label = "urgent" }] sources = ["docs"] [[commands.subcommand.field]] id = "tags" label = "Tags" description = "Comma-separated tags or emoji short codes." type = "string" option = ["--tags"] sources = ["docs"] [[commands.subcommand.field]] id = "click" label = "Click URL" type = "url" option = ["--click"] sources = ["docs"] [[commands.subcommand.field]] id = "icon" label = "Icon URL" type = "url" option = ["--icon"] sources = ["docs"] [[commands.subcommand.field]] id = "markdown" label = "Markdown message" type = "boolean" option = ["--markdown"] sources = ["docs"] [[commands.subcommand.field]] id = "at" label = "Deliver at" description = "Example: tomorrow, 10am" type = "string" option = ["--at"] value_style = "equals" sources = ["docs"] [[commands.subcommand.field]] id = "delay" label = "Deliver in" description = "Example: 5m, 2h" type = "string" option = ["--in"] value_style = "equals" sources = ["docs"] [[commands.subcommand.field]] id = "topic" label = "Topic" description = "Topic name, or a full topic URL." type = "string" position = 0 sources = ["docs"] [[commands.subcommand.field]] id = "message" label = "Message" type = "string" position = 1 sources = ["docs"] [[commands.subcommand.task]] id = "send" label = "Send message" fields = ["topic", "message", "title", "priority", "tags"] required = ["topic", "message"] [[commands.subcommand.task]] id = "later" label = "Send later" fields = ["topic", "message", "delay"] required = ["topic", "message", "delay"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["topic", "message", "title", "priority", "tags"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["click", "icon", "markdown", "at", "delay"]