ReeplDOCS

Signing In

How to sign in to the Reepl CLI — the quick browser login, a browserless option for servers and AI agents, switching workspaces, and where your login is stored.

Before you can use the Reepl CLI, you need to sign in with your Reepl account. It works just like logging into the website, and you only have to do it once — the CLI stays signed in and quietly keeps your session fresh after that.

The easy way: sign in with your browser

reepl login

This pops open your browser and asks you to log into Reepl the way you normally would. Approve it, and you're done — the CLI is now connected to your account. No copying codes, no pasting passwords into the terminal.

Want to double-check it worked?

reepl whoami

This shows the account you're signed into and which workspace is active.

No browser? Sign in through stdin

If you're on a server, in an automated setup, or running an AI agent where no browser is available, pipe your credentials into the CLI as JSON. You'll need two values from a signed-in Reepl web session — an ID token and a refresh token:

printf '%s' '{"idToken":"YOUR_ID_TOKEN","refreshToken":"YOUR_REFRESH_TOKEN"}' \
  | reepl login --credentials-stdin

In practice you'd read that JSON from a secrets manager rather than typing it, so the tokens never appear in a script:

printf '%s' "$REEPL_CREDENTIALS_JSON" | reepl login --credentials-stdin

The CLI verifies the ID token's signature against Cognito before it saves anything, so a malformed or expired token fails immediately rather than being stored and failing later.

Treat your refresh token like a password. Anyone who has it can act as you in Reepl until it expires, so don't share it or commit it to a public repository.

The CLI deliberately won't accept credentials as command-line arguments. Anything you type as a flag is visible to other processes and lands in your shell history, so stdin is the only supported way to pass them.

Staying signed in

Once you're logged in, you generally won't have to think about it again. The CLI automatically refreshes your session in the background as you use it, so commands just keep working.

If you go a long stretch without using it, your session can eventually expire. When that happens, a command will tell you it needs you to sign in again — just run reepl login once more and you're back.

Switching workspaces

If your account belongs to more than one workspace (say, a personal one and a team one), your commands run against whichever workspace is currently active. You can see and change that at any time:

reepl workspace list          # show every workspace you belong to
reepl workspace current       # which one is active right now
reepl workspace switch <id>   # switch to a different one

Switching changes what everything else sees — your posts, drafts, contacts, and team data all follow the active workspace.

Where your login is stored

Your login is saved on your own computer at ~/.reepl/credentials.json. The CLI writes it as an owner-only file (0600) inside an owner-only folder (0700), refuses to read it back if the permissions have been loosened, and won't follow a symlink in its place. Nothing sensitive is stored anywhere public.

If you'd like to keep separate logins side by side — for example, one per client or per automated job — you can point the CLI at a different folder using the REEPL_CONFIG_DIR setting:

export REEPL_CONFIG_DIR=/path/to/another/folder
reepl login

Each folder holds its own independent session, so they never get in each other's way.

Signing out

reepl logout

This removes your saved login from your computer.