Reddit Tools
Full Reddit automation — discover threads, evaluate posters, post + comment, vote, follow, organize, DM via Reddit Chat
Full Reddit automation — discover threads, evaluate posters, post + comment, vote, follow, organize, DM via Reddit Chat
The Reddit category covers the full Reddit-engagement loop. 21 tools organized by workflow stage — discover relevant threads, evaluate posters before engaging, post + comment + vote, follow up on conversations, and organize subscriptions + custom feeds. Every write action — and every read that Reddit gates from cloud-datacenter IPs — runs through a logged-in session shared via the browser extension, so the same identity (and karma) persists across calls.
New to Reddit outreach? Read the Results Ranking Optimization guide first — it covers the should-I-reply gate, anti-spam rules, and the engagement style that doesn’t get accounts shadowbanned.
Write tools (create_reddit_comment, create_reddit_post, vote_reddit, send_reddit_message) and the personal read tool (list_reddit_inbox) need a logged-in Reddit session. get_reddit_post also routes through a pooled session — Reddit 403s unauthenticated reads from cloud-datacenter IPs even for fully public threads, so the tool uses any pooled bearer to route the read through oauth.reddit.com (authenticated reads work from any IP).
The session is shared through the GTM Tools browser extension: install it, press Connect, and stay logged into Reddit in that browser. The pool re-syncs the moment Reddit rotates the session token, so the bearer the tools use always tracks your live browser.
list_connected_reddit_accounts shows which accounts are active in the workspace pool. Each row carries:
reddit_username — pass this to any write tool as senderUsernameconnected_by — the teammate whose browser contributed the sessionlast_synced — when the cookies were last refreshedstatus — ready (account is usable) or stale (cookies present but Reddit’s /api/me.json doesn’t recognize them; reopen reddit.com to refresh)get_reddit_post returns the post and the full comment tree in a single call — Reddit’s /comments/<id>.json endpoint does both at once, so we don’t split it into a separate list_reddit_post_comments tool the way LinkedIn does.
The response shape:
Each comment’s url is a permalink ready to pass back to create_reddit_comment for a threaded reply. more_replies and more_top_level surface truncation when a thread is too deep / long for a single response — Reddit returns “more” placeholders rather than hiding them, and so do we.
Accepted URL shapes for get_reddit_post:
https://www.reddit.com/r/<sub>/comments/<post>/<slug>/https://www.reddit.com/r/<sub>/comments/<post>/<slug>/<commentId>/ (comment URL — resolves to the same post)https://old.reddit.com/r/<sub>/comments/<post>/<slug>https://www.reddit.com/comments/<post>https://redd.it/<post>create_reddit_comment works for both top-level replies on a post and threaded replies on a specific comment — the URL shape decides:
create_reddit_post submits either a text post (body, Markdown supported) or a link post (linkUrl) — provide exactly one. The subreddit field accepts hermesagent, r/hermesagent, or /r/hermesagent (the r/ prefix is stripped). Optional flags: nsfw, spoiler, sendReplies (default true — Reddit DMs you when people reply).
To post to your own profile (Reddit treats user profiles as a special subreddit), use u_<username> as the subreddit name.
vote_reddit takes a post or comment URL and a direction:
Reddit silently returns {} on success; the tool surfaces {status: "ok", thing_id, direction} so you have something concrete to log against.
list_reddit_inbox reads any of the 6 Reddit inbox tabs via a filter enum:
Each item carries:
markRead defaults to false so an agent can peek without mutating state. Pass markRead: true to flip items to read on fetch.
send_reddit_message sends a direct message that lands in the recipient’s “Chats” tab. It works for every Reddit account — modern and legacy — because under the hood it targets Reddit’s chat infrastructure (Matrix Client-Server API against matrix.redditspace.com) rather than the deprecated /api/compose PM endpoint, which newer accounts can’t receive.
On success the tool returns {status: "ok", event_id, room_id, recipient, recipient_matrix_id}. If a DM room with the recipient already exists, the message lands there; otherwise the tool creates a direct room (preset trusted_private_chat) and registers it as a DM so Reddit’s UI groups it correctly.
Why Matrix? Reddit migrated chat off Sendbird onto a Matrix homeserver at
matrix.redditspace.com. The Reddittoken_v2cookie is the Matrix access token — no separate login or token exchange. User IDs are@t2_<reddit_account_id>:reddit.com. E2EE is off by default. This is whysend_reddit_messageworks universally while the legacy PM system fails for the majority of modern accounts.
The discovery stage finds threads worth engaging with. Four tools cover keyword surveillance, subreddit shortlisting, daily monitoring, and the all-important compliance check.
get_subreddit_about returns both the subreddit’s metadata and its rules. Reddit playbooks unanimously flag rule-violations as the #1 shadowban trigger — create_reddit_post and create_reddit_comment won’t check rules for you, the agent has to.
Before engaging, confirm the poster is your ICP (not a bot, not a serial promoter). Two tools cover the credibility check + posting history.
Red flags to filter out: very young account (under 30 days) with disproportionately high karma; lopsided ratio of posts to comments (real users do both); posting concentrated in known promotional subs.
After engaging, you want notifications and a queue. save_reddit_thing doubles as a CRM-style queue via the optional category label.
follow_reddit_postis best-effort. Reddit’s/api/follow_postendpoint is used by the mobile/web clients but isn’t part of Reddit’s documented API. The tool surfaces a clean error if Reddit returns 404; fall back to pollingget_reddit_poston a schedule if that happens.
Custom feeds (Reddit calls them “multireddits”) bundle multiple subreddits into a single stream — one feed per ICP / persona / monitoring theme, then list_reddit_custom_feed_posts reads the merged stream in one call.