Context
Stub is at `internal/tools/social/reddit/tool.go`. All methods return `ErrNotImplemented`. `IsEnabled() = false` so tools are invisible to agents until implemented.
Tools to implement
| Tool |
Description |
| `reddit_search` |
Full-text search across Reddit or within a subreddit |
| `reddit_posts` |
Fetch hot/new/top/rising from any subreddit |
| `reddit_post` |
Fetch a single post + comment thread |
| `reddit_submit` |
Submit a link or text post |
| `reddit_comment` |
Post a comment on a submission |
| `reddit_subreddit` |
Fetch subreddit info (rules, description, subscribers) |
Auth
Reddit OAuth2 — script app type (username+password flow) for personal use, web app for multi-user.
Required env vars:
- `REDDIT_CLIENT_ID`
- `REDDIT_CLIENT_SECRET`
- `REDDIT_USERNAME` (script apps)
- `REDDIT_PASSWORD` (script apps)
API
Official Reddit REST API v1: `https://www.reddit.com/dev/api/\`
Token endpoint: `POST https://www.reddit.com/api/v1/access_token\`
Auth: Basic(client_id, client_secret) + form body `grant_type=password&username=&password=`
Rate limit: 100 requests/minute per OAuth client.
Implementation notes
- Token refresh: access tokens expire in 1h → store expiry, refresh before each request
- User-Agent header is mandatory: `nexus-engine/1.0 by `
- `reddit_submit` and `reddit_comment` require `RequiresPermission: true`
- Keep `IsEnabled() = false` on all tools until env vars are present (check in `IsEnabled()`)
Context
Stub is at `internal/tools/social/reddit/tool.go`. All methods return `ErrNotImplemented`. `IsEnabled() = false` so tools are invisible to agents until implemented.
Tools to implement
Auth
Reddit OAuth2 — script app type (username+password flow) for personal use, web app for multi-user.
Required env vars:
API
Official Reddit REST API v1: `https://www.reddit.com/dev/api/\`
Token endpoint: `POST https://www.reddit.com/api/v1/access_token\`
Auth: Basic(client_id, client_secret) + form body `grant_type=password&username=&password=`
Rate limit: 100 requests/minute per OAuth client.
Implementation notes