Open the composer with pre-filled content for quick posting
Open the Statuz composer with optional pre-filled content. The composer provides the full Statuz interface for selecting platforms, accounts, and editing before publishing.
statuz://compose[?parameters]
| Parameter | Type | Description | Example |
|---|---|---|---|
text | string | Post content (URL-encoded) | Hello%20World |
media | string | Comma-separated file paths or URLs | file:///path/img.png,https://example.com/img.jpg |
files | string | Alias for media when passing raw absolute paths | /Users/me/Desktop/photo.png,/tmp/video.mov |
bk | string | Base64 security-scoped bookmarks (comma-separated) | AAAA...=,BBBB...= |
pb | string | Pasteboard token for reading bookmarks/payload | STATUZ_PB_TOKEN |
schedule | ISO8601 | Schedule date/time | 2024-12-25T10:00:00Z |
timezone | string | Timezone identifier (IANA format) | America/New_York |
quote | string | URL or ID of post to quote | https://x.com/user/status/123 |
thread | boolean | Create multi-post thread | true |
autosplit | boolean | Auto-split long text into thread | true |
draft | boolean | Save as draft instead of publishing | true |
Note: Platform and account selection happens in the Statuz UI. The URL scheme pre-fills content, then you choose where to publish using the app's interface.
Create a simple post:
open "statuz://compose?text=Hello%20from%20automation!"
Attach a local image:
open "statuz://compose?text=Check%20this%20out!&media=file:///Users/me/Desktop/screenshot.png"
Automatically download and attach a remote image:
open "statuz://compose?text=Amazing%20photo!&media=https://example.com/photo.jpg"
Attach multiple images (comma-separated):
TEXT="Here are the results"
MEDIA="file:///path/to/chart1.png,file:///path/to/chart2.png,file:///path/to/chart3.png"
ENCODED_TEXT=$(echo "$TEXT" | jq -sRr @uri)
ENCODED_MEDIA=$(echo "$MEDIA" | jq -sRr @uri)
open "statuz://compose?text=$ENCODED_TEXT&media=$ENCODED_MEDIA"Pre-fill with scheduled time:
open "statuz://compose?text=Good%20morning!&schedule=2024-12-25T09:00:00Z&timezone=America/New_York"
Quote an existing tweet:
open "statuz://compose?text=Great%20insight!"e=https://x.com/user/status/123456789"
Create a multi-post thread:
TEXT="Post 1 content
Post 2 content
Post 3 content"
ENCODED=$(echo "$TEXT" | jq -sRr @uri)
open "statuz://compose?text=$ENCODED&thread=true"Automatically split long text into multiple posts:
LONG_TEXT="This is a very long post that exceeds the character limit. It will be automatically split into multiple posts to fit within the platform's constraints. Each post will be properly formatted and linked as a thread."
ENCODED=$(echo "$LONG_TEXT" | jq -sRr @uri)
open "statuz://compose?text=$ENCODED&autosplit=true"Open composer and save as draft:
open "statuz://compose?text=Work%20in%20progress...&draft=true"
macOS sandbox requires special handling for file access. Statuz provides four methods:
Use file:// URLs or absolute paths. On first access from a new directory, Statuz prompts once to grant access:
open "statuz://compose?media=file:///Users/me/Desktop/photo.jpg"
Supports:
For silent operation without prompts, use pre-generated bookmarks:
# Generate bookmark (requires Statuz helper tool)
BOOKMARK=$(statuz-bookmark create ~/Desktop/photo.jpg)
# Use in URL scheme
open "statuz://compose?bk=$BOOKMARK"Write bookmarks or file data to a named pasteboard:
# Create pasteboard with bookmarks
TOKEN="STATUZ_$(uuidgen)"
pbcopy -pboard "$TOKEN" <<EOF
{
"bookmarks": ["<BASE64_BOOKMARK_1>", "<BASE64_BOOKMARK_2>"]
}
EOF
open "statuz://compose?pb=$TOKEN"Or with embedded file data:
TOKEN="STATUZ_$(uuidgen)"
pbcopy -pboard "$TOKEN" <<EOF
{
"items": [
{
"name": "photo.png",
"data": "<BASE64_FILE_DATA>"
}
]
}
EOF
open "statuz://compose?pb=$TOKEN"Download files automatically from HTTP/HTTPS URLs:
open "statuz://compose?media=https://example.com/image.jpg,https://example.com/video.mp4"
Supported formats:
Limits:
#!/bin/bash
# Take screenshot and open in Statuz
screencapture -i /tmp/screenshot.png
TEXT="Check out this screenshot!"
ENCODED=$(printf %s "$TEXT" | jq -sRr @uri)
open "statuz://compose?text=$ENCODED&media=file:///tmp/screenshot.png"#!/bin/bash
# Post clipboard content
CLIPBOARD=$(pbpaste)
ENCODED=$(printf %s "$CLIPBOARD" | jq -sRr @uri)
open "statuz://compose?text=$ENCODED"#!/bin/bash
# Generate and post daily report
REPORT="Daily Update - $(date +%Y-%m-%d)
✅ Tasks completed: 8
⏳ In progress: 3
🎯 On track for goals"
ENCODED=$(printf %s "$REPORT" | jq -sRr @uri)
open "statuz://compose?text=$ENCODED"#!/bin/bash
# Create thread from text file (one paragraph per post)
CONTENT=$(cat report.txt)
ENCODED=$(printf %s "$CONTENT" | jq -sRr @uri)
open "statuz://compose?text=$ENCODED&thread=true"Create a Shortcut with these actions:
#!/usr/bin/env node
// @raycast.schemaVersion 1
// @raycast.title Post to Statuz
// @raycast.mode silent
const { exec } = require('child_process');
const text = process.argv.slice(2).join(' ');
const encoded = encodeURIComponent(text);
exec(`open "statuz://compose?text=${encoded}"`);query="{query}"
encoded=$(printf %s "$query" | jq -sRr @uri)
open "statuz://compose?text=$encoded"TEXT="Your post content"
ENCODED=$(printf %s "$TEXT" | jq -sRr @uri)
open "statuz://compose?text=$ENCODED"The compose action will show user-friendly errors for: