# Reddit CLI for AI Agents

```json
{
  "title": "Reddit CLI for AI Agents",
  "toolkit": "Reddit",
  "toolkit_slug": "reddit",
  "framework": "CLI",
  "framework_slug": "cli",
  "url": "https://composio.dev/toolkits/reddit/framework/cli",
  "markdown_url": "https://composio.dev/toolkits/reddit/framework/cli.md",
  "updated_at": "2026-10-12T13:39:07.462Z"
}
```

## Introduction

CLIs are eating MCPs. The industry is converging on the very same idea. MCPs for all their merit can be token hungry, slow, and unreliable for complex tool chaining. However, coding agents have become incredibly good at working with CLIs, and in fact they are far more comfortable working with CLI tools than MCP.
With Composio's Universal CLI, your coding agents can talk to over 1500+ SaaS applications. With Reddit, agents can post a weekly update to r/marketing, search for trending posts about ai startups, retrieve comments from your latest reddit post, and more — all without worrying about authentication.
This guide walks you through Composio Universal CLI and explains how you can connect it with coding agents like Claude Code, Codex, OpenCode, etc, for end-to-end Reddit automation.

## Also integrate Reddit with

- [Claude Code](https://composio.dev/toolkits/reddit/framework/claude-code)
- [Cursor](https://composio.dev/toolkits/reddit/framework/cursor)
- [ChatGPT](https://composio.dev/toolkits/reddit/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/reddit/framework/claude-cowork)
- [Antigravity](https://composio.dev/toolkits/reddit/framework/antigravity)
- [OpenAI Agents SDK](https://composio.dev/toolkits/reddit/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/reddit/framework/claude-agents-sdk)
- [Grok Bot](https://composio.dev/toolkits/reddit/framework/grok-bot)
- [Muse](https://composio.dev/toolkits/reddit/framework/muse)
- [Codex](https://composio.dev/toolkits/reddit/framework/codex)
- [Kimi Code](https://composio.dev/toolkits/reddit/framework/kimi)
- [Grok Build](https://composio.dev/toolkits/reddit/framework/grok-build)
- [VS Code](https://composio.dev/toolkits/reddit/framework/vscode)
- [OpenCode](https://composio.dev/toolkits/reddit/framework/opencode)
- [OpenClaw](https://composio.dev/toolkits/reddit/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/reddit/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/reddit/framework/atomic-agent)
- [Google ADK](https://composio.dev/toolkits/reddit/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/reddit/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/reddit/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/reddit/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/reddit/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/reddit/framework/crew-ai)
- [Pydantic AI](https://composio.dev/toolkits/reddit/framework/pydantic-ai)
- [AutoGen](https://composio.dev/toolkits/reddit/framework/autogen)

## TL;DR

The idea behind building the universal CLI is to give agents a single command interface to interact with all your external applications. Here's what you'll get with it:
- Agent-friendly: Coding agents like Claude Code, Codex, and OpenCode can use CLI tools natively — no MCP setup required.
- Authentication handled: Connect once via OAuth or API Key, and all CLI commands work with your credentials automatically.
- Tool discovery: Search, inspect, and execute 20,000+ tools across 1500+ apps from one interface.
- Trigger support: Use triggers to listen for events across your apps, powered by real-time webhooks or polling under the hood.
- Type generation: Generate typed schemas for autocomplete and type safety in your projects.

## Connect Reddit to CLI

### Prerequisites
Install the Composio CLI, authenticate, and initialize your project:

```bash
# Install the Composio CLI
curl -fsSL https://composio.dev/install | bash

# Authenticate with Composio
composio login
```

## What is the Reddit MCP server, and what's possible with it?

The Reddit MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Reddit account. It provides structured and secure access to Reddit posts, communities, user profiles, and your own content, so your agent can browse sorted posts, find controversial discussions, search for subreddits, review user information, and edit your comments or self-posts on your behalf.
- Sorted post discovery: Have your agent retrieve Reddit posts sorted by hot, new, top, rising, controversial, or best.
- Controversial discussion tracking: Let the agent find controversial posts across Reddit for a chosen time period.
- Subreddit search: Direct your agent to search for communities by words found in their titles and descriptions.
- User profile research: Instruct your agent to look up a Reddit user and review details such as karma scores and gold status.
- Comment and self-post editing: Have your agent revise the body text of your existing comments or self-posts.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `REDDIT_CREATE_REDDIT_POST` | Create a Reddit post | Creates a new text or link post on a specified, existing Reddit subreddit, optionally applying a flair. Immediately publishes publicly visible content — confirm subreddit, title, and body with the user before executing. Posts may be silently removed post-submission by automoderator or subreddit rules (errors: SUBMIT_VALIDATION_BODY_BLACKLISTED_STRING, POST_GUIDANCE_VALIDATION_FAILED); verify visibility via the returned permalink. Rapid consecutive calls trigger RATELIMIT errors with cooldown hints. |
| `REDDIT_DELETE_REDDIT_COMMENT` | Delete Reddit comment | Deletes a Reddit comment, identified by its fullname ID, if it was authored by the authenticated user. Deletion is permanent and irreversible. |
| `REDDIT_DELETE_REDDIT_POST` | Delete a Reddit post | Permanently and irreversibly deletes a Reddit post by its ID. Confirm with the user before calling. Only works on posts authored by the authenticated account; attempting to delete another user's post will fail. |
| `REDDIT_EDIT_REDDIT_COMMENT_OR_POST` | Edit comment or post | Edits the body text of the authenticated user's own existing comment or self-post on Reddit; cannot edit link posts or titles. |
| `REDDIT_EXPAND_MORE_COMMENTS` | Expand More Comments | Resolve up to 20 child IDs from a `more` placeholder returned by Retrieve Comments for a Post. Pass the placeholder's `children`, the post fullname in `link_id`, and optionally its bare `data.id` as `more_id`. Reddit permits only one concurrent request to this endpoint, so call expansions serially. |
| `REDDIT_GET` | Get Reddit listing by sort | Tool to retrieve a listing of Reddit posts sorted by the specified criteria (hot, new, top, rising, controversial, best). Use when you need to get posts from the Reddit front page or all of Reddit with a specific sort order. Supports pagination and time filtering for top and controversial sorts. For new controversial-post workflows, prefer GET_CONTROVERSIAL; this action retains controversial support for backward compatibility. Use GET_RANDOM for random posts. |
| `REDDIT_GET_CONTROVERSIAL_POSTS` | Get controversial posts from all subreddits | Tool to retrieve controversial posts from all subreddits with time filters. Use when you need to find the most controversial posts across Reddit from a specific time period (hour, day, week, month, year, or all-time). Returns a paginated listing of posts ranked by controversy within the specified time frame. |
| `REDDIT_GET_ME_PREFS` | Get user preferences | Tool to retrieve preference settings of the logged in user. Use when you need to check user preferences or settings. |
| `REDDIT_GET_RANDOM` | Get random Reddit post | Tool to retrieve a random public Reddit post from any subreddit. Use when you want to discover serendipitous content or need a random post for testing or entertainment purposes. |
| `REDDIT_GET_REDDIT_USER_ABOUT` | Get user information | Retrieves information about a specified Reddit user account, including karma scores and gold status. Use when you need to get profile information for any public Reddit user. |
| `REDDIT_GET_SCOPES` | Get OAuth scopes | Tool to retrieve all available OAuth scopes supported by the Reddit API. Use when you need to understand what permissions are available or check scope definitions. |
| `REDDIT_GET_SUBREDDIT_METADATA` | Get subreddit metadata | Retrieve one exact subreddit's public profile metadata, including descriptions, subscriber count, settings, and connected-user relationship fields. |
| `REDDIT_GET_SUBREDDIT_RULES` | Get subreddit rules | Fetch the explicit posting rules for a subreddit to ensure compliance before posting or commenting. Use when you need to verify content meets community guidelines or explain subreddit requirements to users. |
| `REDDIT_GET_SUBREDDITS_SEARCH` | Search subreddits | Tool to search subreddits by title and description. Use when you need to find subreddits matching a specific topic or keyword. Returns a paginated listing of subreddits with their details including subscribers, descriptions, and other metadata. |
| `REDDIT_GET_USER_FLAIR` | Get user flair | Fetches the list of user flair assignments for a given subreddit. Returns paginated results with user flair details. Returned flair_id values are scoped to the specific subreddit and must not be reused across different subreddits. |
| `REDDIT_GET_USERNAME_AVAILABLE` | Check username availability | Tool to check whether a username is available for registration on Reddit. Use when you need to verify if a username can be used to create a new account. |
| `REDDIT_LIST_CUSTOM_FEED` | List custom Reddit feed | List posts from a public custom Reddit feed owned by a named user. |
| `REDDIT_LIST_MODERATION_QUEUE` | List moderation queue | List one moderator review queue for a subreddit. Use `data.after` as `after` on the next call to continue pagination. The connected account must have the `posts` moderator permission for the requested subreddit. |
| `REDDIT_LIST_SUBREDDIT_COMMENTS` | List subreddit comments | List recent comments across all posts in a subreddit. Use `data.after` as `after` on the next call to continue pagination. This is a subreddit-wide feed, not the comment tree for one post. |
| `REDDIT_LIST_SUBREDDIT_MODERATORS` | List subreddit moderators | List a subreddit's moderators and each moderator's granted permissions. |
| `REDDIT_LIST_SUBREDDIT_POST_FLAIRS` | List subreddit post flairs | List available link/post flairs for a subreddit (including flair_template_id) so posts can satisfy flair-required validation. Use when you need to discover valid flair IDs before creating a post in a subreddit that requires flair. Note: Reddit may return empty or deny access if the authenticated user cannot set link flair and is not a moderator. |
| `REDDIT_POST_REDDIT_COMMENT` | Post a comment | Posts a comment on Reddit, replying to an existing submission (post) or another comment. Fails if the target thread is locked, archived, or restricted — verify thread state beforehand. Rapid successive calls trigger Reddit RATELIMIT errors with explicit cooldown hints (e.g., 'take a break for 9 minutes'); honor the specified wait before retrying. A successful API response does not guarantee public visibility — automod or spam filters may silently remove the comment. Publishes immediately and publicly; confirm target and text before executing. |
| `REDDIT_PREPARE_MEDIA_UPLOAD` | Prepare Reddit media upload | Registers an image or video with Reddit and returns temporary upload instructions. This does not upload the file or publish a post. Pass every returned upload field and its value unchanged to the upload destination before the temporary signature expires. |
| `REDDIT_RETRIEVE_POST_COMMENTS` | Retrieve Comments for a Post | Retrieves all comments for a Reddit post given its base-36 article ID. Response is a two-element listings array: post metadata in `listings[0]`; comments in `listings[1].data.children` with text at each `[].data.body` and nested replies under each comment's `replies` field. Replies require recursive traversal to capture full discussion. Optionally control ordering (`sort`), how many comments are returned (`limit`), and how deep the reply tree is expanded (`depth`) before Reddit collapses remaining replies into `more` placeholders. Large, locked, or archived threads may still return truncated trees regardless of `depth`. Filter out comments where `body` is `[deleted]` or `[removed]`; use `parent_id` to reconstruct conversation flow. No date/time-range filter — compare `created_utc` against a UTC cutoff to filter by date. |
| `REDDIT_RETRIEVE_REDDIT_POST` | Retrieve posts from subreddit | Retrieves posts from a specified, publicly accessible subreddit. Responses nest post data under `data.children[].data`; inspect the structure before parsing. Pagination uses a `data.after` cursor; deduplicate across pages by post `id`. No built-in date filtering; compare `created_utc` (Unix seconds, UTC) client-side. Rate limit: ~1–2 requests/second; back off on HTTP 429. |
| `REDDIT_RETRIEVE_SPECIFIC_COMMENT` | Retrieve specific comment or post | Retrieves detailed information for a single Reddit comment or post using its fullname. Returns only the specified item, not surrounding thread context; use REDDIT_RETRIEVE_POST_COMMENTS for full discussion retrieval. Deleted, removed, or quarantined items may return empty or partial payloads. |
| `REDDIT_SEARCH_ACROSS_SUBREDDITS` | Search across subreddits | Searches Reddit for posts using a query. Results are nested under `data.children[i].data` (kind `t3` for posts); a `posts` array may also appear, so inspect the actual response path. Optional `time_filter` restricts results to a time period (hour/day/week/month/year/all). Optional `result_type` must include `link`; non-post types in a mixed search do not appear in the streamlined `posts` field. Empty `children` is a valid no-results outcome. Key post fields: `score`, `num_comments`, `created_utc`, `permalink`. Rate limit: ~1-2 requests/sec; HTTP 429 indicates throttling. |
| `REDDIT_TOGGLE_INBOX_REPLIES` | Enable or disable inbox replies | Enable or disable inbox replies for a submission or comment. Use when you want to control whether you receive inbox notifications for replies to your own posts or comments. |
| `REDDIT_VOTE_ON_CONTENT` | Vote on Reddit content | Cast or clear one vote only when directly instructed by a human. Never infer how to vote, vote autonomously, amplify a vote, or apply one instruction to multiple items. |

## Supported Triggers

None listed.

## Complete Code

None listed.

## Conclusion

- Try asking your coding agent to perform various Reddit operations
- Explore cross-app workflows by connecting more toolkits
- Set up triggers for real-time automation
- Use composio generate for typed schemas in your projects

## How to build Reddit MCP Agent with another framework

- [Claude Code](https://composio.dev/toolkits/reddit/framework/claude-code)
- [Cursor](https://composio.dev/toolkits/reddit/framework/cursor)
- [ChatGPT](https://composio.dev/toolkits/reddit/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/reddit/framework/claude-cowork)
- [Antigravity](https://composio.dev/toolkits/reddit/framework/antigravity)
- [OpenAI Agents SDK](https://composio.dev/toolkits/reddit/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/reddit/framework/claude-agents-sdk)
- [Grok Bot](https://composio.dev/toolkits/reddit/framework/grok-bot)
- [Muse](https://composio.dev/toolkits/reddit/framework/muse)
- [Codex](https://composio.dev/toolkits/reddit/framework/codex)
- [Kimi Code](https://composio.dev/toolkits/reddit/framework/kimi)
- [Grok Build](https://composio.dev/toolkits/reddit/framework/grok-build)
- [VS Code](https://composio.dev/toolkits/reddit/framework/vscode)
- [OpenCode](https://composio.dev/toolkits/reddit/framework/opencode)
- [OpenClaw](https://composio.dev/toolkits/reddit/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/reddit/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/reddit/framework/atomic-agent)
- [Google ADK](https://composio.dev/toolkits/reddit/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/reddit/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/reddit/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/reddit/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/reddit/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/reddit/framework/crew-ai)
- [Pydantic AI](https://composio.dev/toolkits/reddit/framework/pydantic-ai)
- [AutoGen](https://composio.dev/toolkits/reddit/framework/autogen)

## Related Toolkits

- [Facebook](https://composio.dev/toolkits/facebook) - Facebook is a social media and advertising platform for businesses and creators. It helps you connect, share, and manage content across your public Facebook Pages.
- [Linkedin](https://composio.dev/toolkits/linkedin) - LinkedIn is a professional networking platform for connecting, sharing content, and engaging with business opportunities. It's the go-to place for building your professional brand and unlocking new career connections.
- [Active campaign](https://composio.dev/toolkits/active_campaign) - ActiveCampaign is a marketing automation and CRM platform for managing email campaigns, sales pipelines, and customer segmentation. It helps businesses engage customers and drive growth through smart automation and targeted outreach.
- [ActiveTrail](https://composio.dev/toolkits/active_trail) - ActiveTrail is a user-friendly email marketing and automation platform. It helps you reach subscribers and automate campaigns with ease.
- [Adobe Marketing Agent MCP](https://composio.dev/toolkits/adobe_marketing_agent_mcp) - Adobe Marketing Agent MCP is Adobe's hosted MCP service that exposes marketing context, preferences, and agent capabilities. Use it to provide agents with campaign, audience, and analytics context via a managed integration.
- [Ahrefs](https://composio.dev/toolkits/ahrefs) - Ahrefs is an SEO and marketing platform for site audits, keyword research, and competitor insights. It helps you improve search rankings and drive organic traffic.
- [AimTell](https://composio.dev/toolkits/aimtell) - AimTell is a web push notification platform for managing websites, subscribers, campaigns, segments, and delivery analytics. Use it to send targeted browser notifications and measure engagement across your web push campaigns.
- [Amcards](https://composio.dev/toolkits/amcards) - AMCards lets you create and mail personalized greeting cards online. Build stronger customer relationships with easy, automated card campaigns.
- [AWeber](https://composio.dev/toolkits/aweber) - AWeber is an email marketing platform for creating campaigns, lists, and landing pages. It helps businesses automate email outreach and measure subscriber engagement.
- [Beamer](https://composio.dev/toolkits/beamer) - Beamer is a news and changelog platform for in-app announcements and feature updates. It helps companies boost user engagement by sharing news where users are most active.
- [Beehiiv](https://composio.dev/toolkits/beehiiv) - Beehiiv is a newsletter platform for creating and managing publications and subscribers. It helps grow audience engagement and monetize your mailing list.
- [Benchmark email](https://composio.dev/toolkits/benchmark_email) - Benchmark Email is a platform for creating, sending, and tracking email campaigns. It's built to help you engage audiences and analyze results—all in one place.
- [Bigmailer](https://composio.dev/toolkits/bigmailer) - BigMailer is an email marketing platform for managing multiple brands with white-labeling and automation. It helps teams streamline campaigns and simplify integration with Amazon SES.
- [Bitly](https://composio.dev/toolkits/bitly) - Bitly is a link management platform for shortening, customizing, sharing, and tracking links and QR codes. It helps teams create branded links and measure engagement across campaigns.
- [BlueFox Email](https://composio.dev/toolkits/bluefox_email) - BlueFox Email is an email API for managing contacts, subscriber lists, and sending transactional and triggered messages. Use it to reliably send transactional and triggered emails and manage subscribers at scale.
- [Brandfetch](https://composio.dev/toolkits/brandfetch) - Brandfetch is an API that delivers company logos, colors, and visual branding assets. It helps marketers and developers keep brand visuals consistent everywhere.
- [Braze](https://composio.dev/toolkits/braze) - Braze is a customer engagement platform for managing user data, messaging, campaigns, and analytics. Use it to deliver targeted, multi-channel messaging and analyze campaign performance.
- [Brevo](https://composio.dev/toolkits/brevo) - Brevo is an all-in-one email and SMS marketing platform for transactional messaging, automation, and CRM. It helps businesses engage customers and streamline communications through powerful campaign tools.
- [Buffer](https://composio.dev/toolkits/buffer) - Buffer is a social media management platform for planning, creating, scheduling, and publishing posts across connected channels. It helps teams keep content organized and publish consistently without jumping between social apps.
- [BulkPublish](https://composio.dev/toolkits/bulkpublish) - BulkPublish is a social media publishing platform for managing scheduled content across multiple channels. It helps teams plan campaigns, publish consistently, and track performance in one place.

## Frequently Asked Questions

### What is the Composio Universal CLI?

The Composio Universal CLI is a single command-line interface that lets coding agents and developers interact with 1500+ SaaS applications. It handles authentication, tool discovery, action execution, and trigger setup — all from the terminal, without needing to configure MCP servers.

### Which coding agents work with the Composio CLI?

Any coding agent that can run shell commands works with the Composio CLI — including Claude Code, Codex, OpenCode, OpenClaw, and others. Once the CLI is installed, agents automatically discover and use the composio commands to interact with Reddit and other connected apps.

### How is the CLI different from using an MCP server for Reddit?

MCP servers require configuration and can be token-heavy for complex workflows. The CLI gives agents a direct, lightweight interface — no server setup needed. Agents simply call composio commands like any other shell tool. It's faster to set up, more reliable for multi-step tool chaining, and works natively with how coding agents already operate.

### How safe is my Reddit data when using the Composio CLI?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Reddit data and credentials are handled as safely as possible. You can also bring your own OAuth credentials for full control.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
