Terminal

tinyposter CLI

A tiny terminal command for posting. Zero dependencies. Works anywhere Node 18+ runs.

What you're building

A command on your computer called tinyposter. After this, you can type tinyposter post "hi" --to TWITTER in any terminal and the post goes live.

You need:

  • Node.js 18 or newer (free, from nodejs.org)
  • A tinyposter token
  • About 2 minutes

Setup

  1. 01

    Install

    Open Terminal (Mac/Linux) or PowerShell (Windows) and run:

    bash
    npm install -g tinyposter

    Or, to skip the install step, prefix every command with npx:

    bash
    npx tinyposter help
  2. 02

    Log in

    Get a token at your tokens page. Then run:

    bash
    tinyposter login

    It asks for the token. Paste it. Done. The token is saved at:

    • Mac: ~/Library/Application Support/tinyposter/config.json
    • Linux: ~/.config/tinyposter/config.json
    • Windows: %APPDATA%\tinyposter\config.json
    For CI / scripts
    Set TINYPOSTER_TOKEN=tp_… as an environment variable instead of running login. The CLI uses it automatically.
  3. 03

    Try it

    List what platforms you have connected:

    bash
    tinyposter accounts

    Post:

    bash
    tinyposter post "hello from my terminal" --to TWITTER,LINKEDIN

Commands

bash
tinyposter login                              # save your token
tinyposter logout                             # forget the saved token
tinyposter whoami                             # who am I?
tinyposter accounts                           # list connected platforms
tinyposter usage                              # plan + posts used this period
tinyposter post "<text>" --to <PLATFORMS>     # post now
tinyposter schedule "<text>" --to <PLATFORMS> --at <ISO>
tinyposter list [--status <status>] [--limit 25]
tinyposter cancel <id>                        # cancel scheduled post
tinyposter help                               # show help
tinyposter version                            # show version

Common flags

  • --to TWITTER,LINKEDIN — where to publish (run accounts for the list)
  • --at 2026-05-03T13:00:00Z — schedule time (ISO 8601)
  • --media https://...,https://... — image/video URLs to attach
  • --title "..." — used as YouTube/TikTok video title
  • --json — print JSON instead of pretty output (great for scripts)

Examples

bash
# Post the same thing to three platforms
tinyposter post "Friday recap incoming" --to TWITTER,LINKEDIN,BLUESKY

# Schedule a Sunday post
tinyposter schedule "Coffee thoughts" --to THREADS --at 2026-05-03T13:00:00Z

# Post a photo
tinyposter post "new piece today" --to INSTAGRAM \
  --media https://example.com/photo.jpg

# See what's scheduled
tinyposter list --status scheduled

# Pipe to jq for fancy filtering
tinyposter list --json | jq '.data[] | select(.status=="failed")'

# Cancel
tinyposter cancel 8a3fbb20-1234-5678-aaaa-bbbbccccdddd

Use it from automation

The CLI is built for piping and scripting. Some common patterns:

Cron job — daily post

bash
# crontab -e
0 9 * * * TINYPOSTER_TOKEN=tp_xxx /usr/local/bin/tinyposter post "good morning" --to TWITTER

GitHub Actions — post on release

.github/workflows/release-tweet.ymlyaml
name: Tweet on release
on:
  release:
    types: [published]
jobs:
  post:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/setup-node@v4
        with: { node-version: 20 }
      - run: npx tinyposter post "${{ github.event.release.body }}" --to TWITTER,LINKEDIN
        env:
          TINYPOSTER_TOKEN: ${{ secrets.TINYPOSTER_TOKEN }}

Bash function — quick alias

.bashrc / .zshrcbash
# Drop into your shell config so "tweet hi" just works
tweet() { tinyposter post "$*" --to TWITTER; }
xpost() { tinyposter post "$*" --to TWITTER,LINKEDIN,BLUESKY; }

Configuration

Two ways to point the CLI somewhere other than production (for testing):

  • Env var: TINYPOSTER_BASE_URL=http://localhost:3000
  • Or edit config.json manually and add "baseUrl": "...".

Troubleshooting

command not found: tinyposter

The global install path isn't on your PATH. Easiest fix: use npx tinyposter instead. Or run npm config get prefix and add ${prefix}/bin to your PATH.

Permission denied installing globally

On Mac/Linux, prefix with sudo or use a Node version manager like nvm/fnm to install Node in your home directory (no sudo needed). Or skip install and use npx tinyposter.

I get a 401 / Unauthorized

Your token is wrong or revoked. Run tinyposter login with a fresh token from the tokens page.

I get 'platform_not_connected'

You asked for a platform you haven't hooked up yet. Run tinyposter accounts to see the list, or connect at accounts.

I get "quota_exceeded"

You're out of posts for this billing period. Upgrade at billing.

Source

The CLI is open source (MIT). It calls the public HTTP API. Read the source if you want to fork or audit it.

Next