{"id":49575198,"url":"https://github.com/rollecode/raycast-confetti-receiver","last_synced_at":"2026-05-03T16:11:01.971Z","repository":{"id":355212962,"uuid":"878882832","full_name":"rollecode/raycast-confetti-receiver","owner":"rollecode","description":"A Raycast confetti receiver for macOS! 🎉","archived":false,"fork":false,"pushed_at":"2024-10-26T12:33:28.000Z","size":3,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-05-02T13:33:32.376Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/rollecode.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-26T11:20:40.000Z","updated_at":"2026-03-23T00:47:02.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/rollecode/raycast-confetti-receiver","commit_stats":null,"previous_names":["rollecode/raycast-confetti-receiver"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/rollecode/raycast-confetti-receiver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollecode%2Fraycast-confetti-receiver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollecode%2Fraycast-confetti-receiver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollecode%2Fraycast-confetti-receiver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollecode%2Fraycast-confetti-receiver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rollecode","download_url":"https://codeload.github.com/rollecode/raycast-confetti-receiver/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollecode%2Fraycast-confetti-receiver/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32575398,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"2026-05-03T16:11:01.140Z","updated_at":"2026-05-03T16:11:01.964Z","avatar_url":"https://github.com/rollecode.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎉 Raycast Confetti Webhook Receiver\n\nThis project sets up a webhook receiver on your Mac to trigger Raycast's confetti effect when specific events occur in remote applications like Todoist, Pipedrive, or Height.app. Using **Cloudflare Tunnel**, you can establish a persistent, secure URL to make the server accessible from anywhere without exposing your local network directly.\n\n## Table of contents\n\n- [Features](#features)\n- [Requirements](#requirements)\n- [Setup instructions](#setup-instructions)\n  - [Install dependencies](#install-dependencies)\n  - [Set up Cloudflare tunnel](#set-up-cloudflare-tunnel)\n  - [Configure webhooks in external servies on a remote server](#configure-webhooks-in-external-servies-on-a-remote-server)\n  - [Testing the Setup](#testing-the-setup)\n  - [Automatically starting the server on macos](#automatically-starting-the-server-on-macos)\n  - [Automatically starting cloudflared on macos](#automatically-starting-cloudflared-on-macos)\n- [License](#license)\n- [Author](#author)\n\n## Features\n\n- Triggers Raycast confetti when receiving specific webhooks\n- Uses Cloudflare Tunnel to provide a stable, secure URL\n\n## Requirements\n\n- macOS\n- **Node.js** (v12+)\n- **Raycast** (with confetti support)\n- **Cloudflare account**\n- **Todoist API Token**, **Pipedrive API Access**, or **Height.app API Access** (optional, depending on integration)\n\n## Setup instructions\n\n### Install dependencies\n\n1. Clone this repository to your Mac:\n\n   ```bash\n   git clone https://github.com/ronilaukkarinen/raycast-confetti-receiver.git\n   cd raycast-confetti-receiver\n   ```\n\n2. Install the necessary Node.js packages:\n\n   ```bash\n   npm install\n   ```\n\n### Set up Cloudflare tunnel\n\nCloudflare Tunnel allows you to create a stable and secure public URL for your local server.\n\n1. **Install Cloudflare tunnel (cloudflared)**:\n\n   ```bash\n   brew install cloudflared\n   ```\n\n2. **Authenticate with Cloudflare**:\n\n   Log in to Cloudflare to set up authentication:\n\n   ```bash\n   cloudflared tunnel login\n   ```\n\n   This will open a browser window to authenticate with your Cloudflare account.\n\n3. **Create a new tunnel**:\n\n   Create a new tunnel with a chosen name (e.g., `raycast-confetti`):\n\n   ```bash\n   cloudflared tunnel create raycast-confetti\n   ```\n\n4. **Route the tunnel to your local server**:\n\n   Configure the tunnel to route traffic to your local server on port `3019` (or the port you're using). Replace `your-subdomain` and `example.com` with your Cloudflare domain and preferred subdomain:\n\n   ```bash\n   cloudflared tunnel route dns raycast-confetti your-subdomain.example.com\n   ```\n\n5. Add ingress rules for your tunnel:\n\n  ```bash\n  nano ~/.cloudflared/config.yml\n  ```\n\n  Add the following lines to the file:\n\n  ```yaml\n  tunnel: raycast-confetti\n  credentials-file: /Users/rolle/.cloudflared/xxxxxxx-your-actual-id-from-the-file.json\n\n  ingress:\n    - hostname: raycast-confetti.yourdomain.com\n      service: http://localhost:3019\n    - service: http_status:404\n  ```\n\n6. **Run the tunnel**:\n\n   Start the tunnel to make your server publicly accessible:\n\n   ```bash\n   cloudflared tunnel run raycast-confetti\n   ```\n\n   Your server should now be accessible at `https://your-subdomain.example.com`.\n\n7. **Run the Server**:\n\n   ```bash\n   node confetti-server.mjs\n   ```\n\n8. Your server should now listen for incoming POST requests at `https://your-subdomain.example.com/trigger-confetti` and trigger Raycast's confetti effect upon receiving a request.\n\n### Configure webhooks in external servies on a remote server\n\nPlease look at the repo [raycast-confetti-server](https://github.com/ronilaukkarinen/raycast-confetti-server) for more information on how to set up webhooks in Todoist, Pipedrive, or Height.app.\n\n### Testing the Setup\n\n1. Start `node confetti-server.mjs` on your Mac.\n2. Make a POST request to `https://your-subdomain.example.com/trigger-confetti` (e.g., from Todoist or using `curl`):\n\n   ```bash\n   curl -X POST https://your-subdomain.example.com/trigger-confetti\n   ```\n\n3. If everything is set up correctly, Raycast's confetti effect should trigger on your Mac.\n\n### Automatically starting the server on macos\n\nTo have the `raycast-confetti-receiver` server start automatically in the background on macOS, use `launchd`:\n\n1. **Create a `launchd` plist file**:\n\n   ```bash\n   nano ~/Library/LaunchAgents/com.rolle.raycast-confetti-receiver.plist\n   ```\n\n   Add the following configuration:\n\n   ```xml\n   \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n   \u003c!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\"\u003e\n   \u003cplist version=\"1.0\"\u003e\n   \u003cdict\u003e\n       \u003ckey\u003eLabel\u003c/key\u003e\n       \u003cstring\u003ecom.rolle.raycast-confetti-receiver\u003c/string\u003e\n\n       \u003ckey\u003eProgramArguments\u003c/key\u003e\n       \u003carray\u003e\n           \u003cstring\u003e/usr/local/bin/node\u003c/string\u003e\n           \u003cstring\u003e/path/to/your/project/confetti-server.mjs\u003c/string\u003e\n       \u003c/array\u003e\n\n       \u003ckey\u003eRunAtLoad\u003c/key\u003e\n       \u003ctrue/\u003e\n       \u003ckey\u003eKeepAlive\u003c/key\u003e\n       \u003ctrue/\u003e\n   \u003c/dict\u003e\n   \u003c/plist\u003e\n   ```\n\n2. **Load the service**:\n\n   ```bash\n   launchctl load ~/Library/LaunchAgents/com.rolle.raycast-confetti-receiver.plist\n   ```\n\n### Automatically starting cloudflared on macos\n\nTo start Cloudflare Tunnel (`cloudflared`) automatically in the background on macOS, create a `launchd` plist file:\n\n1. **Create the `launchd` plist file**:\n\n   ```bash\n   nano ~/Library/LaunchAgents/com.rolle.cloudflared.plist\n   ```\n\n   Add the following configuration:\n\n   ```xml\n   \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n   \u003c!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\"\u003e\n   \u003cplist version=\"1.0\"\u003e\n   \u003cdict\u003e\n       \u003ckey\u003eLabel\u003c/key\u003e\n       \u003cstring\u003ecom.rolle.cloudflared\u003c/string\u003e\n\n       \u003ckey\u003eProgramArguments\u003c/key\u003e\n       \u003carray\u003e\n           \u003cstring\u003e/opt/homebrew/bin/cloudflared\u003c/string\u003e\n           \u003cstring\u003etunnel\u003c/string\u003e\n           \u003cstring\u003erun\u003c/string\u003e\n           \u003cstring\u003eraycast-confetti\u003c/string\u003e\n       \u003c/array\u003e\n\n       \u003ckey\u003eRunAtLoad\u003c/key\u003e\n       \u003ctrue/\u003e\n       \u003ckey\u003eKeepAlive\u003c/key\u003e\n       \u003ctrue/\u003e\n   \u003c/dict\u003e\n   \u003c/plist\u003e\n   ```\n\n2. **Load the service**:\n\n   ```bash\n   launchctl load ~/Library/LaunchAgents/com.rolle.cloudflared.plist\n   ```\n\n### License\n\nThis project is licensed under the MIT License.\n\n### Author\n\n- [Roni Laukkarinen](https://github.com/ronilaukkarinen)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frollecode%2Fraycast-confetti-receiver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frollecode%2Fraycast-confetti-receiver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frollecode%2Fraycast-confetti-receiver/lists"}