Posting journal and archive: what was posted, when, and with which files
ReachWeaver already keeps everything it does in a private database on your computer (state/). Two commands turn that record into something you can read, search, back up and hand to someone else.
| You want | Command | What it does |
|---|---|---|
| A list of what went out | reachweaver journal |
Read-only. Text, time, platform, account, who approved, the link the platform returned, the files, and an audit timeline |
| A folder you can browse | reachweaver archive |
One sub-folder per post with the exact text and metadata, an index, and (with --copy-files) copies of the attached files |
Neither command sends, schedules or approves anything, and neither contacts any platform.
What the journal shows
Section titled “What the journal shows”For every post that went out, or may have gone out (published, sending, needs_review):
- When (UTC): the time of the send, or the nearest recorded time
- Where: platform and account
- Status and the link the platform returned (
remote_url,remote_id) - The exact text and its length
- Who approved it, when, how, and the first 12 characters of the hash the approval is tied to
- Files: each image and the video, with path, SHA-256, size, type, and whether the file is still on disk (
--verify-filesalso checks it still matches the recorded hash) - Timeline: the audit events with their times (for example
draft_created,approve,send_claimed,published)
Material you posted by hand and recorded with mark-shared appears too, marked shared_by_hand. A post recorded with mark-shared --url is listed once, as a measurable post with status published_manual and source posted_by_hand (measure posts you shared by hand). Use --no-by-hand to leave both out.
reachweaver journal # a table of what went out, newest firstreachweaver journal --platform youtube --since 2026-10-01reachweaver journal --account my-bluesky --format markdown --out journal.mdreachweaver journal --format csv --out journal.csv # opens in a spreadsheetreachweaver journal --post-id POST_ID --format json # one post, everything, including the timelinereachweaver journal --all-statuses # drafts, approved and scheduled posts as wellreachweaver journal --verify-files # do the recorded files still match?Formats: table (default), markdown, csv, json. --out FILE writes a new owner-only file and never overwrites. --since and --until take a date (2026-10-01, UTC) or a full ISO time with a timezone; --limit keeps the newest N (default 100, at most 5000).
The archive: a folder of what you posted
Section titled “The archive: a folder of what you posted”reachweaver archive --copy-files # into state/archive/, next to the databasereachweaver archive --out ~/social-archive --copy-files --since 2026-10-01social-archive/ .reachweaver-archive # marks the folder as an archive index.md index.csv # the overview, rebuilt each run 2026-10-16_bluesky_my-bluesky_7eae2ea5.../ post.txt # the exact text, byte for byte meta.json # account, times, approver, link, timeline, files files/ 01-image-chart.png # a copy, only with --copy-files- Private. Folders are created
0700and files0600. The archive holds your post text and files; do not publish it, and keep it out of git. - Only ever added to. Running
archiveagain adds posts that are not there yet. An existing post folder is never overwritten, and the folder must carry the.reachweaver-archivemarker, so a mistyped--outcannot spill into another directory. - Copies are verified. With
--copy-files, a file is copied only if its bytes still match the SHA-256 recorded when it was attached. A file that changed or went missing is not copied andmeta.jsonsayschangedormissing, so a wrong file is never presented as the one that was posted. Images that were attached by URL are recorded asurl_only; hand-posted entries keep a hash only (hash_only) because ReachWeaver never saw the file.
Keeping the files themselves
Section titled “Keeping the files themselves”The database stores each file’s path and hash, not the file. If you move or delete a video after posting, the journal still shows its hash and says it is no longer available. To keep copies, run archive --copy-files after you post (or on a schedule you set up). A reasonable habit: archive right after each posting session.
Honest limits
Section titled “Honest limits”- It is a local record, not a platform receipt. The link is what the platform returned at send time; confirm anything important on the native account.
- Anything posted outside ReachWeaver appears only if you recorded it with
mark-shared. - The audit timeline shows fixed action codes and times. The free-text detail of audit events can contain provider text, so it is never shown.
- Nothing is archived automatically at send time; changing the send path needs a separate security review. Run
archiveyourself.
See also: repeat guard (the same history stops you posting the same thing twice), privacy lifecycle (data-export, data-purge) and start here.
