Your outreach engine, one command away
The OneUp Today CLI puts your Reddit lead generation and X outreach in the terminal you already live in. Run campaigns, review leads, and turn the thing you just shipped into a build-in-public post, without opening a dashboard. You and your AI coding agent both get the keys.
$ npx @oneup_today/cli loginNode.js 18+. Sign in opens your browser, the key lands in the CLI automatically.
$ npx @oneup_today/cli login
Opening app.oneup.today in your browser...
✔ Signed in as Maria. Key saved.
$ oneup campaigns list
NAME STATUS LEADS
Reddit launch RUNNING 23
Build in public SCHEDULED 8
$ oneup post from-changes --message "shipped dark mode" --media ./after.png
Uploading ./after.png...
✔ Queued 1 post draft for your extension to publish.
From zero to outreach in three commands
The CLI is a thin layer over the same engine that powers your OneUp Today dashboard and the Claude connector. Same account, same campaigns, same safety rails.
1. Sign in from the terminal
npx @oneup_today/cli login opens OneUp Today in your browser. Click sign in, and the CLI captures your key automatically and stores it locally with restricted permissions.
2. Run your outreach
List and create campaigns, run one now, review leads and conversations, send drafted DMs, and check whether Reddit sending is ready. Tables by default, --json for scripts.
3. Ship, then post about it
oneup post from-commits reads your GitHub commits; from-changes takes a one-line note plus screenshots. Both write founder-voice drafts and queue them for your extension.
What you can run from the terminal
Campaigns, end to end
Create a Reddit campaign, change its theme or schedule, pause, resume, or run it right now. Check run history and activity without opening a tab.
Leads and conversations
Pull leads by status, read conversations, move a lead to qualified or paid, and send an AI-drafted DM, all from the same shell you work in.
Build in public on autopilot
Turn real work into posts: from-commits reads your connected GitHub history, from-changes takes a one-line note plus screenshots or a short video. Review with --dry-run first.
Posts, reposts, and quote posts
Queue an original post, repost (retweet on X, crosspost on Reddit), or quote post with your own take, to X and Reddit. Your extension publishes from your own browser session.
Media that travels with the post
oneup upload puts screenshots and short videos in your media library; --media attaches them to any post. On X they land in the composer automatically.
A first-class tool for AI agents
oneup agents-init writes an AGENTS.md reference into your repo so Claude Code, Cursor, or any coding agent knows the commands. Every command speaks --json.
Your coding agent finishes a feature. It can announce it too.
The gap between shipping and telling anyone you shipped is where most build-in-public habits die. With the CLI in your repo, the same agent that wrote the code can queue the post about it: what changed, a screenshot, done. You review the draft in your extension before it goes anywhere.
- oneup agents-init drops an AGENTS.md so agents know every command
- from-changes writes the post from a one-line note, media attached
- Drafts queue for review, nothing publishes without you
> Fix the onboarding bug, then post about it
...tests pass, committed.
$ oneup post from-changes --message "fixed the onboarding
redirect bug 3 users hit this week" --dry-run
Draft: "Three users hit the same onboarding wall this week..."
✔ Queued for review in your extension.
Queued, reviewed, then published as you
The CLI queues posts and outreach; the actual publishing happens through the OneUp Today Chrome extension in your own logged-in browser session, at safe rates. No server-side bot logs in as you, and nothing goes out without your review. It is the same honest pipeline the whole product runs on.
The CLI at a glance
- The OneUp Today CLI is a free npm package (@oneup_today/cli) included with every OneUp Today account. Plans start at $19/month with a 3-day free trial.
- One command signs you in: npx @oneup_today/cli login opens your browser, you click sign in, and the CLI captures your key automatically. No copying, no pasting.
- From the terminal you can create and run Reddit campaigns, review leads and conversations, send drafted DMs, and queue posts, reposts, and quote posts to X and Reddit.
- oneup post from-commits turns your recent GitHub commits into ready-to-review build-in-public posts. oneup post from-changes does the same from a one-line note plus screenshots.
- Every command supports --json, and oneup agents-init writes an AGENTS.md reference, so AI coding agents like Claude Code and Cursor can run your outreach for you.
- The CLI talks to the same backend as the OneUp Today Claude connector, with the same account ownership and safety guards. Posts publish through your browser extension, never a server-side bot.
Questions, answered
Is the OneUp Today CLI free?
Yes. The CLI is a free npm package and is included with every OneUp Today account. You need an account for it to talk to (plans start at $19/month with a 3-day free trial), but the CLI itself costs nothing.
How do I install it?
You need Node.js 18 or newer. Run npx @oneup_today/cli login to use it without installing, or npm install -g @oneup_today/cli to get the global oneup command.
How does sign-in work?
oneup login opens OneUp Today in your browser. You sign in there once, and the CLI picks up your key automatically and stores it locally with restricted file permissions. You can also pass a key directly for CI.
Does oneup post publish immediately?
No, and that is deliberate. Posts, reposts, and quote posts are queued for your OneUp Today Chrome extension, which publishes from your own logged-in browser session. No server-side bot ever logs in as you.
Can my AI coding agent use it?
That is one of the main reasons it exists. Run oneup agents-init to drop an AGENTS.md command reference into your repo, and agents like Claude Code or Cursor can list campaigns, check leads, and queue build-in-public posts for you. Every command takes --json for machine-readable output.
How is this different from the Claude connector?
Same backend, same account, same tools, different surface. The Claude connector lives inside a Claude chat; the CLI lives in your terminal and works with any agent or script. They share one API key, so use whichever fits the moment.
The CLI is part of OneUp Today, the tool that finds high-intent leads on Reddit and writes your outreach. See how the engine works on the Reddit lead generation page, or compare plans on pricing.
Put OneUp Today in your terminal
Start free, run npx @oneup_today/cli login, and your outreach engine is one command away, for you and your AI agent.