Skip to content

CLI reference: Data, privacy and schemas

7 commands. Every command runs on your own computer; nothing is sent to a social network unless a publishing command is run by the owner with its live switches.

Write a private folder with one sub-folder per post: the exact text, the metadata and, with –copy-files, hash-verified copies of the attached files; index.md/index.csv. Only ever adds; nothing is sent

Terminal window
reachweaver archive [-h] [--post-id POST_ID] [--status STATUS] [--all-statuses]
[--platform PLATFORM] [--account ACCOUNT] [--since DATE]
[--until DATE] [--limit N] [--no-by-hand] [--out DIR]
[--copy-files] [--json]
Option Description
--post-id POST_ID Only this post
--status STATUS Include this status; repeatable (default: published, sending, needs_review) One of: draft, approved, scheduled, sending, published, needs_review, cancelled, published_manual.
--all-statuses Include drafts, approved and scheduled posts too
--platform PLATFORM Only this platform
--account ACCOUNT Only this account id
--since DATE From this date (YYYY-MM-DD, UTC) or ISO 8601 time with a timezone
--until DATE Up to this date (YYYY-MM-DD, UTC, end of day) or ISO 8601 time
--limit N Newest N entries (1..5000, default 100)
--no-by-hand Leave out material recorded with mark-shared
--out DIR Archive folder (default: archive/ next to the database); created 0700, or an existing archive folder to add to
--copy-files Copy each attached image and video that is still on disk and still matches its recorded SHA-256
--json Machine-readable summary

After moving the workspace: point recorded attachment paths of unsent posts at the new folder, only for files whose SHA-256 still matches; dry run unless –apply

Terminal window
reachweaver media-relink [-h] --from OLD_FOLDER --to NEW_FOLDER [--apply] [--json]
Option Description
--from OLD_FOLDER Absolute folder the files were in
--to NEW_FOLDER Absolute folder they are in now
--apply Write the change (default: show what would change)
--json Machine-readable result

Offline JSON export of your local DB with secret-looking text redacted

Terminal window
reachweaver data-export [-h] [--out OUT]
Option Description
--out OUT NEW owner-only (0600) file; default prints to stdout

Retention purge plan (dry run); –apply deletes/minimizes local rows only

Terminal window
reachweaver data-purge [-h] [--policy POLICY] [--apply]
Option Description
--policy POLICY Retention JSON (default $REACHWEAVER_RETENTION_POLICY or config/retention.json)
--apply Explicitly apply the plan; never touches active/in-flight posts

Offline DB permissions, size, row counts, oldest records, retention config

Terminal window
reachweaver privacy-status [-h] [--policy POLICY]
Option Description
--policy POLICY Retention JSON to validate (same defaults as data-purge)

Offline canonical schema check (1.0, 1.1 or 1.2) of one JSON document

Terminal window
reachweaver schema-validate [-h] --type
{SourceSignal,Evidence,ContentBrief,Draft,PlatformVariant,MediaAsset,Account,Approval,PublishJob,PublishReceipt,AnalyticsSnapshot,Experiment}
file
Option Description
--type SCHEMA_TYPE One of: SourceSignal, Evidence, ContentBrief, Draft, PlatformVariant, MediaAsset, Account, Approval, PublishJob, PublishReceipt, AnalyticsSnapshot, Experiment.
file

Read-only: local outbox rows as canonical schema JSON lines; unmapped rows listed with reasons; never writes the DB or publishes

Terminal window
reachweaver schema-export [-h] [--out OUT]
[--type {Account,Evidence,PlatformVariant,PublishJob,PublishReceipt,AnalyticsSnapshot,Draft,Approval}]
Option Description
--out OUT NEW owner-only (0600) .jsonl file; never overwritten; default stdout
--type EXPORT_TYPE Export only this document type One of: Account, Evidence, PlatformVariant, PublishJob, PublishReceipt, AnalyticsSnapshot, Draft, Approval.