postemi: the command line tool
Installing, the output contract, date handling, and why a scheduler needs a command line tool.
Installation
postemiposteminpm install -g posteminpm install -g postemi
postemi --version
postemi --helpFirst commands
postemi auth:login # sign in through the browser
postemi auth:status # which workspace this machine is linked to
postemi integrations:list # the connected channels, with IDsAll other commands expect this value as the channel ID. List it once and save it.
The output contract
Results go to stdout as JSON. Status messages and errors go to stderr. On failure, the command exits non-zero. That's what makes the output safe to pipe to other commands, and lets the caller know what happened.
# only the channel IDs
postemi integrations:list | jq -r '.[].id'
# in a scheduled run, errors go to the log and the JSON to the consumer
postemi posts:list --startDate ... --endDate ... > calendar.json 2>> errors.logDates and time zones
Always provide an unambiguous date. There are two valid ways to specify it:
- ISO 8601 with an explicit offset:
2026-12-31T12:00:00Zor2026-12-31T12:00:00+01:00. - A time without an offset and a specified time zone:
"2026-12-31 12:00"with the--timezone Europe/Londonflag.
If you provide a date without an offset and don't set a time zone using the flag, the POSTEMI_TIMEZONE variable, or postemi config:set timezone, the command exits with an error. That's intentional. A post scheduled for the wrong time without warning is much worse than an error message.
postemi config:set timezone Europe/London
postemi config:get timezoneFor agents
The package includes a SKILL.md file that describes every command and flag. An agent with terminal access can learn to use the CLI from that file, without reading a website.
If your agent connects directly instead of working through a shell, use the MCP server instead.