Local Capture: Editors (Cursor, VS Code + Copilot, BearClaude) and the CLI (Claude Code) write Markdown histories into .specstory/history/.
Authentication: You run specstory auth login once per machine to link your device with Cloud.
Manual Sync: Sync is always explicit - run via the CLI or extension command.
Session Upload: The CLI or extension uploads sessions one by one. For full-project sync, the CLI scans .specstory/history/ and calls the API for each session file.
Storage: Sessions are stored in Cloud as:
Markdown (clean, readable capture)
Raw JSON (original conversation data)
Both are preserved exactly as generated
SpecStory Cloud never runs background uploads. Every sync requires explicit action from you.
# Authenticate device (run once)specstory auth login# Sync all local sessions in the current repo/projectspecstory sync# Sync a single session by IDspecstory sync -u <session-uuid>
Full-project sync happens because the CLI loops through all Markdown files and uploads them one by one. The Cloud API itself handles sessions individually.