Skip to content

About

/dev/null inside Claude Code: a mod with your log, notifications and posting

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

/dev/null for Claude Code

A Claude Code mod that puts /dev/null, the social network for developers drawn as a git log, in a pane beside your session. Read Following, Latest, Trending and your notifications, and commit, reply, quote, star and save without leaving Claude Code.

It talks to the same signed /api/v1 the /dev/null mobile app uses, and its API client is a TypeScript port of that app's.

This is an unofficial community project, not affiliated with /dev/null, NativePHP or Anthropic.

Written by AI

This mod was written by Claude, Anthropic's AI model, working in Claude Code. Andrew Hodson directed the work, chose the design and tested it against the live site. Claude wrote the code, the tests and these docs.

Read it before you install it, as you would any code you didn't write. It runs commands on your Mac (ssh-keygen, curl, sips, osacompile, codesign, lsregister), keeps a signing key in ~/.devnull-claude/, and registers a handler for devnull:// links. How signing in works covers each of these.

Install

At the prompt of a terminal session:

/plugin install devnull --marketplace mybuddyandrew/devnull-claude

From a shell:

claude plugin install devnull --marketplace mybuddyandrew/devnull-claude

In the desktop app, where /plugin does not run: click + next to the prompt box, then Plugins, Add marketplace with mybuddyandrew/devnull-claude, then Add plugin.

Use

  • /devnull opens the pane.
  • /devnull login signs this machine in. Approve the device on dev-null.sh in your browser and the pane signs in by itself.
  • /devnull logout signs this machine out here. Remove the device on dev-null.sh to revoke its key.
  • /devnull post <text> writes a post in Claude's own prompt box, line breaks and all. It waits above the prompt with Post, Edit and Dismiss; nothing is sent until you press Post. The pane's composer, Reply and Quote all start it for you, aimed at the right commit.
  • /devnull ship [focus] drafts a post about your latest commit, for you to confirm the same way.
  • /devnull draft [focus] drafts a post about what you've been working on.
  • Both use Haiku on a short brief by default (the latest commit's message and changed files, plus your focus): a few hundred tokens. The brief has file paths and line counts, never file contents, and paths that look like secrets (env files, keys and certificates, credential files, a secrets/ folder) are left out. Add --full to have your main model read the whole session instead. It knows why you did things, and it costs far more.
  • /devnull revise <changes> has Claude rewrite the draft waiting above the prompt (the band's ✨ Revise button starts it). Edit puts the draft in the prompt box to change yourself; Dismiss throws it away.
  • /devnull remote @username <message> sends a Remotes message (once dev-null.sh serves Remotes).
  • /devnull show <link or id> draws a commit and its replies as a card in the conversation, and Claude reads it too.

The pane draws best in the Claude desktop app; the terminal gets a plainer version without avatars.

What it does

The pane. Following, Latest, Trending and Notifications (each remembered, so switching tabs is instant), drawn like the web: avatars ringed in each author's lane colour with a lane fading out beneath, replies threaded underneath. Commit, reply, quote, star and save from it. A header shows your streak, rank, XP and a heatmap of your commits. When new commits land, an "↑ N new commits" button appears, and the Notifications tab counts what's unread. Scroll to the bottom and the next page loads by itself; scroll up past the top to refresh.

Reply threads. A post's ▸ N replies opens all its replies right under it; star, save, reply to or open any of them there, and ▾ Hide folds them away. Every button works from the keyboard: Tab to it, Enter to press.

Emoji. Type :st while writing a /devnull post or remote and pick ⭐ from the list, or finish :rocket: and it turns into 🚀 when you post. GitHub's own shortcodes.

Profiles. Click anyone's @handle on a commit or notification, or "your profile" in the header, to open their profile in the pane: bio, followers, streak, rank, XP, earned badges, a heatmap of their commits and their latest commits, with Follow / Unfollow. ← Back returns to the log.

Remotes. dev-null.sh's direct messages, in a Remotes tab: your inbox (Open, Stashed, and Fetched requests), threads drawn as chat bubbles with reactions and pushed / pulled receipts, Merge or Drop for requests, Stash and Pop. Send with /devnull remote @username your message (a thread's Write a message button starts it). Claude can read your inbox and threads, and draft a message for you to send. The tab appears by itself once dev-null.sh's API serves Remotes; until then it stays hidden.

Link cards. A commit's link shows as a card with the page's image, site, title and description. Playable embeds (a video, a song) show as their card, since the pane can't host a player.

Images. A commit's first image draws inline, as a small copy; a few per screen, the rest as a View image link. Posting images isn't possible yet: dev-null.sh's signed API takes text only.

@mentions. @names in posts link to that person's profile. While writing a /devnull command, type @ to tag people you follow or have seen. Before you post, the band lists who you're tagging.

Ship it to /dev/null. Run /devnull ship after a commit and a draft about it waits in a band above the prompt with Post, Revise, Edit and Dismiss. Nothing is posted until you press Post. Nothing drafts by itself: the mod spends no model tokens unless you ask.

Claude can use /dev/null. Ask "what's happening on /dev/null?", "catch me up on my notifications" or "draft a reply to that thread". Claude gets eight tools. What they read is other people's writing, so it reaches Claude marked as untrusted, never as instructions:

Tool What it does
devnull_feed Reads a page of Following, Latest or Trending
devnull_thread Reads a commit with what it replies to and its replies
devnull_profile Reads a profile: bio, streak, rank, XP, badges, recent commits
devnull_notifications Reads your notifications (dev-null.sh marks them read)
devnull_remotes, devnull_remote_thread Read your Remotes inbox and a conversation (read-only)
devnull_remote_draft Shows a Remotes message above the prompt. It never sends: you press Push, Edit or Dismiss
devnull_draft Shows a draft post above the prompt. It never posts: you press Post, Edit or Dismiss

In the conversation. Paste a dev-null.sh commit link into a prompt and Claude gets the thread as context. In a /devnull command, @ offers people you follow or have seen in a log.

Streaks. The status line keeps your streak, unread count and new commits in view. Once a day, if your streak is alive and you haven't posted, a toast reminds you before it ends at midnight UTC.

How signing in works

There are no passwords or tokens. /devnull login makes an ed25519 key in ~/.devnull-claude/ (no passphrase, readable only by you) and every request is signed with it, exactly as the mobile app signs with its Keychain key.

dev-null.sh only sends its approval back to a devnull:// link, so the first login builds a tiny AppleScript app, ~/.devnull-claude/Devnull Callback.app, and registers it with macOS for devnull:// links. It writes the link to a file the mod reads, and does nothing else. If you install the /dev/null mobile app on the same Mac, both will claim those links.

To remove everything: unregister and delete the folder.

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -u ~/.devnull-claude/Devnull\ Callback.app && rm -rf ~/.devnull-claude

Requirements

macOS: sign-in uses osacompile and LaunchServices, avatars are resized with sips, and the ship chime plays with afplay. ssh-keygen, curl and git are run from macOS's own /usr/bin.

Drafting and revising use Haiku ($.model.complete) on a short brief. Only --full asks your Claude Code model one tool-less question over the current session ($.model.fork), falling back to Haiku if that fails.

Notes

  • Opening the Notifications tab marks them read on dev-null.sh, as the web does.
  • Avatars are embedded in the pane at about 2.5 KB each, and one draw carries at most 50 KB of them. The desktop app drops a pane that sends much more, so rows past that show initials.

License

MIT, see LICENSE. The API client is ported from nativephp/dev-null-app, also MIT; its notice is in THIRD_PARTY_NOTICES.md.

Contributing and security

Issues and pull requests are welcome, see CONTRIBUTING.md. Report a security problem privately, as SECURITY.md describes, not in a public issue.

About

/dev/null inside Claude Code: a mod with your log, notifications and posting

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages