๐ Continuity
TL;DR ๐ Every Amy Discord thread is an on-disk omp session. Grab the thread ID โ point
ompat that threadโs--session-dirโ add-c. Youโre back in the exact same conversation, now in your terminal. Daemon and CLI share one session file transparently.
โก Do it in one command
A Discord thread URL ends in the thread ID:
https://discord.com/channels/<guild>/<THREAD_ID>
โโโ this โโโResume that thread interactively in your terminal:
THREAD=1514275906170912769 # ๐ paste your thread ID
omp --allow-home --cwd /home/usr \
--session-dir ~/.omp/amy-sessions/$THREAD -cOne-shot / headless (exactly what the daemon does):
omp --allow-home --cwd /home/usr \
--session-dir ~/.omp/amy-sessions/$THREAD -c "your next prompt"-cโถ๏ธ continues the latest session in that dir.-r 019eb1f2๐ฏ resumes a specific session by ID prefix (when a dir holds more than one).- Omit
-c/-rto start a fresh session that still lives in that threadโs dir.
๐ง The #1 confusion: cwd โ session store
Two unrelated directories. Conflating them is the classic trip-up.
flowchart LR A["๐ฅ๏ธ omp run"] --> B["๐ cwd โ where files get edited"] A --> C["๐พ session store โ where the transcript saves"] B --> B1["/home/usr ยท AMY_WORKDIR (default HOME)"] C --> C1["default: ~/.omp/agent/sessions/ + cwd-bucket"] C --> C2["Amy override: ~/.omp/amy-sessions/ + threadId"]
๐ cwd (--cwd) | ๐พ session store (--session-dir) | |
|---|---|---|
| What | Where the agent reads/edits files | Where the transcript (*.jsonl) is saved |
| ๐ Amyโs value | /home/usr (AMY_WORKDIR, default $HOME) | ~/.omp/amy-sessions/<threadId>/ |
| ๐ค Your normal CLI | wherever you launched | ~/.omp/agent/sessions/<cwd-bucket>/ (auto) |
๐ก โI thought all sessions were in
/home/usr!โ โ Half-true./home/usris the cwd, and omp buckets the default store by cwd. Your home cwd shows up as the-bucket:~/.omp/agent/sessions/-/. So your interactive sessions are keyed by/home/usr, not stored loose in it.
๐บ๏ธ Where every session actually lives
| Who | Store path | Keyed by | Continue with |
|---|---|---|---|
๐งโ๐ป You (plain omp from home) | ~/.omp/agent/sessions/-/ | cwd (/home/usr โ -) | omp -c (same cwd) |
| ๐งต Amy thread | ~/.omp/amy-sessions/<threadId>/ | Discord thread ID | omp --session-dir โฆ -c |
The daemon deliberately splits each Discord thread out of the cwd bucket via
--session-dir(amyd.mjs, or wrapperompcordd.mjs), so every thread is its own independently-resumable session โ no collisions with your interactive work. Default remains~/.omp/amy-sessions;OMPCORD_SESSION_ROOT/existing~/.omp/ompcord-sessionsare supported without stranding legacy threads.
๐ก๏ธ Safety โ never double-write a live session
CLI and daemon share one .jsonl. Both writing at once corrupts continuity.
pgrep -f 'node (amyd|ompcordd)\.mjs' # ๐ is the daemon running?- โ Daemon idle โ continue from CLI freely; it picks up your turns next time.
- โ Daemon mid-turn in that thread โ wait until its run finishes (the dirโs
.jsonlstops growing). Or/amy cancelin Discord first.
๐ Direction matters
| Direction | Works? | Why |
|---|---|---|
| Discord thread โ CLI | โ | point --session-dir at ~/.omp/amy-sessions/<threadId> |
CLI (--session-dir โฆ) โ Discord | โ | daemon reads the same dir; its -c sees your turns |
| Plain CLI session โ Discord | โ | itโs in the - cwd bucket, not a thread dir โ Amy never looks there |
๐งฉ Why each flag
| Flag | Reason |
|---|---|
--session-dir ~/.omp/amy-sessions/<threadId> | ๐ฏ the threadโs transcript store โ the whole point |
-c | โถ๏ธ continue the latest session there |
--allow-home --cwd /home/usr | ๐ replicate Amyโs env; without --allow-home, omp auto-relocates out of ~ |
--model <m> | ๐ง match AMY_MODEL if the daemon set one (else omit) |
The daemon also injects
--append-system-prompt ASK_PROTOCOLso its headless agent can ask via Discord components. From the interactive CLI you donโt need it โ the nativeaskpicker works directly.
โ Verify you grabbed the right session
THREAD=1514275906170912769
ls -t ~/.omp/amy-sessions/$THREAD/*.jsonl | head -1 # ๐ the file -c will reopenThe newest *.jsonl there is exactly what -c resumes โ match it against the last messages in the Discord thread.
See also: Ompcord โ Always-on Discord Bridge (the bridge) ยท Amy SSOT Embed Dashboard (
/amy statusshows the livecwd/session).