285 lines
4.8 KiB
Markdown
285 lines
4.8 KiB
Markdown
|
|
# Postiz CLI - Quick Start Guide
|
||
|
|
|
||
|
|
## Installation
|
||
|
|
|
||
|
|
### From Source (Development)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Navigate to the monorepo root
|
||
|
|
cd /path/to/gitroom
|
||
|
|
|
||
|
|
# Install dependencies
|
||
|
|
pnpm install
|
||
|
|
|
||
|
|
# Build the CLI
|
||
|
|
pnpm run build:cli
|
||
|
|
|
||
|
|
# Test locally
|
||
|
|
node apps/cli/dist/index.js --help
|
||
|
|
```
|
||
|
|
|
||
|
|
### Global Installation (Development)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# From the CLI directory
|
||
|
|
cd apps/cli
|
||
|
|
|
||
|
|
# Link globally
|
||
|
|
pnpm link --global
|
||
|
|
|
||
|
|
# Now you can use 'postiz' anywhere
|
||
|
|
postiz --help
|
||
|
|
```
|
||
|
|
|
||
|
|
### From npm (Coming Soon)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Once published
|
||
|
|
npm install -g postiz
|
||
|
|
|
||
|
|
# Or with pnpm
|
||
|
|
pnpm add -g postiz
|
||
|
|
```
|
||
|
|
|
||
|
|
## Setup
|
||
|
|
|
||
|
|
### 1. Get Your API Key
|
||
|
|
|
||
|
|
1. Log in to your Postiz account at https://postiz.com
|
||
|
|
2. Navigate to Settings → API Keys
|
||
|
|
3. Generate a new API key
|
||
|
|
|
||
|
|
### 2. Set Environment Variable
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Bash/Zsh
|
||
|
|
export POSTIZ_API_KEY=your_api_key_here
|
||
|
|
|
||
|
|
# Fish
|
||
|
|
set -x POSTIZ_API_KEY your_api_key_here
|
||
|
|
|
||
|
|
# PowerShell
|
||
|
|
$env:POSTIZ_API_KEY="your_api_key_here"
|
||
|
|
```
|
||
|
|
|
||
|
|
To make it permanent, add it to your shell profile:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# ~/.bashrc or ~/.zshrc
|
||
|
|
echo 'export POSTIZ_API_KEY=your_api_key_here' >> ~/.bashrc
|
||
|
|
source ~/.bashrc
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3. Verify Installation
|
||
|
|
|
||
|
|
```bash
|
||
|
|
postiz --help
|
||
|
|
```
|
||
|
|
|
||
|
|
## Basic Commands
|
||
|
|
|
||
|
|
### Create a Post
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Simple post
|
||
|
|
postiz posts:create -c "Hello World!" -i "twitter-123"
|
||
|
|
|
||
|
|
# Post with multiple images
|
||
|
|
postiz posts:create \
|
||
|
|
-c "Check these out!" \
|
||
|
|
-m "img1.jpg,img2.jpg" \
|
||
|
|
-i "twitter-123"
|
||
|
|
|
||
|
|
# Post with comments (each can have different media!)
|
||
|
|
postiz posts:create \
|
||
|
|
-c "Main post" -m "main.jpg" \
|
||
|
|
-c "First comment" -m "comment1.jpg" \
|
||
|
|
-c "Second comment" -m "comment2.jpg" \
|
||
|
|
-i "twitter-123"
|
||
|
|
|
||
|
|
# Scheduled post
|
||
|
|
postiz posts:create \
|
||
|
|
-c "Future post" \
|
||
|
|
-s "2024-12-31T12:00:00Z" \
|
||
|
|
-i "twitter-123"
|
||
|
|
```
|
||
|
|
|
||
|
|
### List Posts
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# List all posts
|
||
|
|
postiz posts:list
|
||
|
|
|
||
|
|
# With pagination
|
||
|
|
postiz posts:list -p 2 -l 20
|
||
|
|
|
||
|
|
# Search
|
||
|
|
postiz posts:list -s "keyword"
|
||
|
|
```
|
||
|
|
|
||
|
|
### Delete a Post
|
||
|
|
|
||
|
|
```bash
|
||
|
|
postiz posts:delete abc123xyz
|
||
|
|
```
|
||
|
|
|
||
|
|
### List Integrations
|
||
|
|
|
||
|
|
```bash
|
||
|
|
postiz integrations:list
|
||
|
|
```
|
||
|
|
|
||
|
|
### Upload Media
|
||
|
|
|
||
|
|
```bash
|
||
|
|
postiz upload ./path/to/image.png
|
||
|
|
```
|
||
|
|
|
||
|
|
## Common Workflows
|
||
|
|
|
||
|
|
### 1. Check What's Connected
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# See all your connected social media accounts
|
||
|
|
postiz integrations:list
|
||
|
|
```
|
||
|
|
|
||
|
|
The output will show integration IDs like:
|
||
|
|
```json
|
||
|
|
[
|
||
|
|
{ "id": "twitter-123", "provider": "twitter" },
|
||
|
|
{ "id": "linkedin-456", "provider": "linkedin" }
|
||
|
|
]
|
||
|
|
```
|
||
|
|
|
||
|
|
### 2. Create Multi-Platform Post
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Use the integration IDs from step 1
|
||
|
|
postiz posts:create \
|
||
|
|
-c "Posting to multiple platforms!" \
|
||
|
|
-i "twitter-123,linkedin-456,facebook-789"
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3. Schedule Multiple Posts
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Morning post
|
||
|
|
postiz posts:create -c "Good morning!" -s "2024-01-15T09:00:00Z"
|
||
|
|
|
||
|
|
# Afternoon post
|
||
|
|
postiz posts:create -c "Lunch time update!" -s "2024-01-15T12:00:00Z"
|
||
|
|
|
||
|
|
# Evening post
|
||
|
|
postiz posts:create -c "Good night!" -s "2024-01-15T20:00:00Z"
|
||
|
|
```
|
||
|
|
|
||
|
|
### 4. Upload and Post Image
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# First upload the image
|
||
|
|
postiz upload ./my-image.png
|
||
|
|
|
||
|
|
# Copy the URL from the response, then create post
|
||
|
|
postiz posts:create -c "Check out this image!" --image "url-from-upload"
|
||
|
|
```
|
||
|
|
|
||
|
|
## Tips & Tricks
|
||
|
|
|
||
|
|
### Using with jq for JSON Parsing
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Get just the post IDs
|
||
|
|
postiz posts:list | jq '.[] | .id'
|
||
|
|
|
||
|
|
# Get integration names
|
||
|
|
postiz integrations:list | jq '.[] | .provider'
|
||
|
|
```
|
||
|
|
|
||
|
|
### Script Automation
|
||
|
|
|
||
|
|
```bash
|
||
|
|
#!/bin/bash
|
||
|
|
# Create a batch of posts
|
||
|
|
|
||
|
|
for hour in 09 12 15 18; do
|
||
|
|
postiz posts:create \
|
||
|
|
-c "Automated post at ${hour}:00" \
|
||
|
|
-s "2024-01-15T${hour}:00:00Z"
|
||
|
|
echo "Created post for ${hour}:00"
|
||
|
|
done
|
||
|
|
```
|
||
|
|
|
||
|
|
### Environment Variables
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Custom API endpoint (for self-hosted)
|
||
|
|
export POSTIZ_API_URL=https://your-instance.com
|
||
|
|
|
||
|
|
# Use the CLI with custom endpoint
|
||
|
|
postiz posts:list
|
||
|
|
```
|
||
|
|
|
||
|
|
## Troubleshooting
|
||
|
|
|
||
|
|
### API Key Not Set
|
||
|
|
|
||
|
|
```
|
||
|
|
❌ Error: POSTIZ_API_KEY environment variable is required
|
||
|
|
```
|
||
|
|
|
||
|
|
**Solution:** Set the environment variable:
|
||
|
|
```bash
|
||
|
|
export POSTIZ_API_KEY=your_key
|
||
|
|
```
|
||
|
|
|
||
|
|
### Command Not Found
|
||
|
|
|
||
|
|
```
|
||
|
|
postiz: command not found
|
||
|
|
```
|
||
|
|
|
||
|
|
**Solution:** Either:
|
||
|
|
1. Use the full path: `node apps/cli/dist/index.js`
|
||
|
|
2. Link globally: `cd apps/cli && pnpm link --global`
|
||
|
|
3. Add to PATH: `export PATH=$PATH:/path/to/apps/cli/dist`
|
||
|
|
|
||
|
|
### API Errors
|
||
|
|
|
||
|
|
```
|
||
|
|
❌ API Error (401): Unauthorized
|
||
|
|
```
|
||
|
|
|
||
|
|
**Solution:** Check your API key is valid and has proper permissions.
|
||
|
|
|
||
|
|
```
|
||
|
|
❌ API Error (404): Not Found
|
||
|
|
```
|
||
|
|
|
||
|
|
**Solution:** Verify the post ID exists when deleting.
|
||
|
|
|
||
|
|
## Getting Help
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# General help
|
||
|
|
postiz --help
|
||
|
|
|
||
|
|
# Command-specific help
|
||
|
|
postiz posts:create --help
|
||
|
|
postiz posts:list --help
|
||
|
|
postiz posts:delete --help
|
||
|
|
```
|
||
|
|
|
||
|
|
## Next Steps
|
||
|
|
|
||
|
|
- Read the full [README.md](./README.md) for detailed documentation
|
||
|
|
- Check [SKILL.md](./SKILL.md) for AI agent integration patterns
|
||
|
|
- See [examples/](./examples/) for more usage examples
|
||
|
|
|
||
|
|
## Links
|
||
|
|
|
||
|
|
- [Postiz Website](https://postiz.com)
|
||
|
|
- [API Documentation](https://postiz.com/api-docs)
|
||
|
|
- [GitHub Repository](https://github.com/gitroomhq/postiz-app)
|
||
|
|
- [Report Issues](https://github.com/gitroomhq/postiz-app/issues)
|