
Commit to /dev/null, the social network for developers, from Raycast or Raycast AI. Your commit is signed with the SSH key you already use for GitHub.
Features • Requirements • First-Time Setup • Quick Start • Usage • Development
~/.ssh. It never reads a private key; your agent or ssh-keygen does the signing.If you already push to GitHub over SSH, you probably have everything: sign in at dev-null.sh once and skip to Quick Start.
/dev/null has no password. It knows a commit is yours because it is signed with an SSH key, the same kind of key developers use to push code to GitHub, and that key is on your GitHub account. Setup puts a key on your Mac, adds it to GitHub, and introduces you to /dev/null.
If you use 1Password, it can make and hold the key for you. In 1Password, create a new SSH Key item (choose Ed25519), then turn on Settings → Developer → Use the SSH Agent. 1Password will ask you to approve each commit with Touch ID. Secretive works the same way.
Otherwise, open Terminal and check for an existing key:
ls ~/.ssh/*.pub
If that lists a file such as id_ed25519.pub, and ls ~/.ssh shows the same name without .pub beside it, you have a key. If it says no matches found, make one:
ssh-keygen -t ed25519 -C "you@example.com"
Press Return to accept the default location. A passphrase is optional. If you set one, load the key into macOS's SSH agent so Raycast can use it without asking (Raycast can't show a passphrase prompt):
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
After a restart, run ssh-add --apple-load-keychain to load it again.
Copy the public half of the key (the .pub file, never the other one):
pbcopy < ~/.ssh/id_ed25519.pub
With 1Password, open the SSH Key item and copy its public key instead.
Then on GitHub, go to Settings → SSH and GPG keys → New SSH key, paste it, and save. Either key type, Authentication or Signing, works.
Sign in at dev-null.sh with GitHub. This creates your account, and it is also when /dev/null copies your keys from GitHub. If you add a key later, sign in again so /dev/null learns it.
| Message | What to do |
|---|---|
| No Ed25519 or RSA SSH key found in your SSH agent or in ~/.ssh. | Make a key (step 1). With 1Password, check that its SSH agent is on. |
| None of your SSH keys are on the GitHub account of a /dev/null user. | Add the key to GitHub (step 2), then sign in at dev-null.sh again (step 3). |
| Could not sign your commit. | The rest of the message is what ssh-keygen reported. If it mentions a passphrase, the key isn't loaded: run the ssh-add command from step 1. |
12 of 4,000) shows how much of the 4,000 characters you have used.⌘ N (Add Attachment) and pick up to 3.⌘ ⏎ to sign and post it. If your SSH agent asks for Touch ID or an approval, give it.| Command | Mode | Description |
|---|---|---|
| Create Commit | view | Write a commit, sign it with your SSH key, and post it to /dev/null |
| Tool | Description |
|---|---|
| Post Commit | Posts a commit with up to 3 images, after you confirm the text and images. Mention @dev-null in Raycast AI, and attach images to your message or give their paths, such as ~/Desktop/launch.png. |
| Action | Shortcut | Description |
|---|---|---|
| Commit | ⌘ ⏎ | Sign the draft and post it |
| Add Attachment | ⌘ N | Show the image picker |
| Remove Attachments | ⌃ ⇧ X | Remove the images and hide the picker |
| Open Commit | ⌘ O, or in the success toast | Open the commit you just posted. Appears once a commit has posted. |
| Preference | Values | Default |
|---|---|---|
| Debug Logging | checkbox | off |
| Strict Redaction | checkbox | off |
raycast-dev-null/
├── src/
│ ├── create-commit.tsx # The form: draft, images, counter, submit and toasts
│ ├── tools/
│ │ └── post-commit.ts # The AI tool and its confirmation
│ └── lib/
│ ├── devnull.ts # The /dev/null protocol: check, find a key, sign, post
│ ├── body.ts # /dev/null's rules for the text, and its character count
│ └── images.ts # /dev/null's rules for images
├── ai.yaml # AI instructions and evals
├── assets/ # Extension icon (runtime)
├── media/ # README images
├── package.json
└── tsconfig.json
| Script | Description |
|---|---|
npm run dev | Start in development mode with hot reload |
npm run build | Build for production |
npm run lint | Run Raycast ESLint config |
npm test | Run the unit tests |
npm run fix-lint | Auto-fix lint issues |
npm run publish | Publish to the Raycast Store |
git clone https://github.com/chrismessina/raycast-dev-null.git
cd raycast-dev-null
npm install
npm run dev
| Package | Role |
|---|---|
@raycast/api | Raycast extension primitives |
@raycast/utils | Higher-level Raycast utilities |
@chrismessina/raycast-kit | Failure toasts with a Copy Error action |
@chrismessina/raycast-logger | Debug logging with secrets redacted |
MIT © Chris Messina
Sign a commit with your SSH key and post it to /dev/null.
~/.ssh, and signs through your agent or ssh-keygen. It never reads a private key.