Last Updated: 9/2/2026
Troubleshooting and FAQ
Overview
This is the place to look when Jolli Memory is not behaving, and the place to check the common questions before you adopt it. Part 1 walks through problems in the order they usually happen. Part 2 answers the questions people ask most. Whatever the symptom, run jolli doctor first.
Part 1: Troubleshooting
Start here: jolli doctor
jolli doctor is the first thing to run for any problem. It prints a health checklist and tells you what, if anything, is broken.
jolli doctorEach line is one check:
| Check | What it means | Healthy state |
|---|---|---|
| Git hooks | The post-commit, post-rewrite, prepare-commit-msg, and post-merge hooks (a separate pre-push hook handles sync-on-push) | installed |
| Claude hook | The Claude Code Stop and SessionStart hooks (optional) | installed |
| Gemini hook | The Gemini CLI AfterAgent hook (optional) | installed |
| System of record | Which store holds this repo’s Memories, and whether it is reachable. This is the row that answers “can Memories be stored at all” | orphan branch (jollimemory/summaries/v3), or SQLite (...) once the repo is cut over |
| Orphan branch | The jollimemory/summaries/v3 branch. Informational only - it never fails | exists, or not yet created (will be created on first commit). After a cut-over to SQLite it reads absent (expected...) or present but frozen, and both are healthy |
| Worker lock | The background worker’s lock file, flagged stuck when older than 5 minutes | not stuck |
| Sessions | Count of tracked agent sessions (informational only) | any number |
| Git queue | Pending summary operations, flagged high above 10 entries | empty or low |
| Config | Whether a usable credential is available | credentials found |
| Local agent CLI | Only shown when you generate summaries with a local agent CLI. Finds the agent’s binary and reports its version | the binary and version it found |
| dist-paths | The per-source paths the hooks resolve to at runtime | at least one registered |
| Global daemon | The shared background daemon, reported as context for the backup row below | running |
| Database backup | Whether snapshots of the local database are being taken. Stale snapshots or an invalid backup folder fail; an unreachable drive warns, and escalates after seven days | recent snapshot |
| Memory tree | Whether the stored Memory tree still has a reachable root, which an amend, rebase or squash can strand | reachable |
| Repo registry | The list of repositories Jolli knows about on this machine, flagged when an entry’s folder is gone | every entry resolves |
| Dashboard events | Dashboard events waiting to be processed, flagged when some are stuck | none parked |
| plugin … | Version compatibility of any installed plugin | compatible |
The Local agent CLI row is worth understanding, because it catches a problem the Config row cannot. When your provider is a local agent, the “credential” is a program on your machine rather than a stored key, so a healthy Config row only tells you the provider is selected. This row goes further and actually looks for the binary. If it cannot find one, the message names the sign-in step for that agent, and every commit will otherwise fail quietly. If you set localAgentPath by hand, the message also tells you that discovery was skipped because of it, and how to clear it.
If a check fails, doctor exits with an error so you know to act. To repair automatically:
jolli doctor --fix--fix repairs five things:
- Releases a stale worker lock.
- Reinstalls missing git hooks.
- Removes stale dist-path entries.
- Takes a database snapshot when one is overdue.
- Un-parks stuck dashboard events.
One further repair is deliberately held behind a second flag: --fix --forget-dead also drops registry entries whose folder is gone. That deletes those repositories’ memories, and no backup here restores them, so it is never part of a plain --fix.
--fix does not clear the queue. To remove expired queue data, run jolli clean. To work through a backlog of pending summaries, make one more commit (see Stuck or backlogged queue).
If doctor did not pin the problem, the sections below cover what it does not.
The install finished, but there is no jolli command
The symptom is that the install script or npm install -g @jolli.ai/cli runs to the end without an obvious error, and then jolli --version reports that the command does not exist. Almost always this is the Node version.
Jolli Memory requires Node 22.13 or later, and the package refuses to install on anything older. The install script’s own check is coarser than that - it looks at the major version only, so a machine on Node 22.5 through 22.12 passes it, hands off to npm, and npm is the one that refuses. The script does not print npm’s output on a run it considers successful, so the refusal is not shown to you.
Check what you actually have:
node --versionIf it is below 22.13, upgrade Node and install again:
nvm install 22.13
npm install -g @jolli.ai/cli
jolli --versionTo see the refusal for yourself rather than inferring it, skip the script and run npm install -g @jolli.ai/cli directly - npm prints an EBADENGINE warning naming the version it wanted and the version it found.
You may also see a lower figure quoted while you are setting up. The install script asks for Node 22 or later, because it checks the major version only. 22.13 is the one that is enforced, so a machine on Node 22.5 through 22.12 clears the script’s check and is then refused by npm.
No Memory after a commit
The most common problem. Work through these in order.
1. Restart your agent. This is the single most frequent cause. Two agents capture sessions through hooks, and those hooks only take effect for sessions started after you enabled Jolli. If you enabled Jolli while your agent was already open, restart it (in VS Code or a fork like Cursor or Windsurf, reload the window; in IntelliJ, restart the IDE). Use the table below to see whether your agent needs a restart.
| Agent | How sessions are captured | Restart after enable? |
|---|---|---|
| Claude Code | Stop hook records each response, SessionStart hook injects a briefing | Yes |
| Gemini CLI | AfterAgent hook fires after each completion | Yes |
| Codex CLI | Discovered automatically by scanning the filesystem | No |
| OpenCode | Discovered automatically from a local SQLite database (requires Node 22.13+) | No |
| Cursor IDE (Composer) | Discovered automatically from Cursor’s local SQLite stores | No |
| GitHub Copilot CLI | Discovered automatically by scanning the Copilot CLI session log | No |
| VS Code Copilot Chat | Discovered automatically from the Copilot Chat conversation cache | No |
Cursor CLI (cursor-agent) | Discovered automatically by scanning ~/.cursor/chats and ~/.cursor/projects | No |
| Cline (VS Code) | Discovered automatically from the extension’s task history | No |
| Cline CLI | Discovered automatically by scanning ~/.cline/data/sessions | No |
| Devin | Discovered automatically from a local SQLite database (requires Node 22.13+) | No |
| Antigravity | Discovered automatically from a local SQLite database (requires Node 22.13+) | No |
| Kimi Code CLI | Discovered automatically by scanning ~/.kimi-code/sessions | No |
2. Check your credentials. Memory needs a credential to generate summaries. Run jolli status (or check the Status panel). If nothing is configured, set one:
# Sign in with Jolli
jolli auth login
# Or bring your own Anthropic key
jolli configure --set apiKey=sk-ant-api03-...With no credential, doctor reports Config: no credentials, and the log shows No LLM provider available.
3. Confirm hooks are installed. If doctor reports Git hooks: not installed, run jolli enable from the repo root, then commit again.
4. Confirm a supported agent was running. A Memory is built from a conversation transcript. If you committed without one of the fourteen supported sources (see the table above) active in that repo, there is nothing to summarize. Every source except Claude Code, Gemini CLI, and Hermes Agent on macOS and Linux is discovered automatically, so no hook or restart is needed for them, but the agent does need to have produced a session.
5. Check the queue. If everything above is fine, the background worker may be stuck. See the next section.
For deeper diagnosis, open the log. In VS Code, use View -> Output -> Jolli Memory. Common messages:
| Message | Meaning |
|---|---|
No LLM provider available. | No credential is set. Sign in or add an API key. |
LLM proxy request failed with status 429 | Rate limited. Memory retries once within a few seconds; if that also fails it saves a placeholder summary you can refill later by clicking Regenerate on that commit. |
LLM direct request to api.anthropic.com failed | Your Anthropic key is invalid or rate limited. |
Your repository uses Husky, lefthook, or pre-commit
This one is worth checking early, because everything looks healthy while nothing is captured. jolli doctor reports Git hooks: installed, jolli status looks normal, and no error appears anywhere - but no commit ever produces a Memory.
Jolli installs its hooks into the repository’s .git/hooks directory. Some hook managers - Husky, lefthook, and pre-commit among them - point git at a directory of their own instead, and git then runs only that directory. Jolli’s hooks are still on disk, which is why the checks pass; git simply never calls them.
Check whether that is what is happening:
git config core.hooksPathIf it prints nothing, this is not your problem. If it prints a path such as .husky, git is reading that directory rather than .git/hooks.
You have two ways forward. If you do not need the other hook manager in this repository, remove the redirect and re-run jolli enable:
git config --unset core.hooksPath
jolli enableIf you want to keep it, call Jolli from the hooks it manages. Add this line to the manager’s post-commit, post-rewrite, prepare-commit-msg, post-merge, and pre-push hooks, passing the matching hook name each time:
[ -x "$HOME/.jolli/jollimemory/run-hook" ] && "$HOME/.jolli/jollimemory/run-hook" post-commit || trueThe guard and the trailing || true are deliberate: they keep a missing dispatcher or a Jolli-side error from failing your commit. prepare-commit-msg also needs the arguments git passes it, so forward them with "$@".
Commit again afterwards and run jolli view to confirm a Memory appeared.
Stuck or backlogged queue
A stuck lock, or a backlog of queued summaries, usually means the worker crashed or the LLM provider was unreachable for a while.
jolli doctor # Reports lock state and queue size
jolli doctor --fix # Releases a stale lock
jolli queue-status # Reports whether summary generation is still running
jolli clean --dry-run # Previews expired data that can be removed
jolli clean # Removes expired sessions, queue entries, and squash markersFor a backlog, just make one more commit. The worker picks up where it left off and processes the rest from that point.
jolli clean only removes expired auxiliary data: session entries older than 48 hours, queue entries older than 7 days, and stale squash markers older than 48 hours. Your stored Memories and transcripts are never deleted by clean. In a non-interactive shell (CI, pipes, redirected input) clean refuses to delete unless you pass -y or --yes, so nothing is wiped by accident.
Sign-in failures
If the browser callback page shows an error, match the code below.
| Code | Meaning | What to do |
|---|---|---|
oauth_failed | The OAuth flow failed. | Retry. If it persists, use BYOK instead. |
session_missing | The sign-in session expired or was lost. | Retry the sign-in. |
invalid_provider | The authentication provider was rejected. | Retry. If it persists, contact support. |
auth_fetch_failed | Jolli could not fetch your user info from the provider. | Retry. |
no_verified_emails | Your Jolli account has no verified email. | Verify an email on your account, then retry. |
server_error | An unexpected server error occurred. | Wait a moment and retry. |
failed_to_get_token | Jolli could not retrieve your credentials. | Retry. Fall back to BYOK if it persists. |
user_denied | Sign-in was cancelled. | Run jolli auth login (or Sign In again) to retry. |
invalid_callback | The server rejected the sign-in callback. | Retry. |
| State mismatch | The callback did not match the flow you started (shown as “Invalid sign-in callback (state mismatch)”). | Retry the sign-in from the same machine. |
If you see “Could not derive Jolli site URL from API key”, your Jolli API key is malformed or incomplete. Regenerate it at Settings -> Jolli Memory -> Create Key and sign in again.
BYOK is always a fallback: if sign-in keeps failing, add an Anthropic key with jolli configure --set apiKey=sk-ant-api03-... and you can still generate Memories (you just cannot use Share in Jolli without a Jolli key).
Signing in again replaced the key my other machine was using
Signing in from the CLI or an editor creates an API key for you automatically. Because the sign-in has no way to hand you a key you already hold, it replaces the previous one instead: the old key is deleted and a fresh one issued.
Whether that affects another machine depends on the client. Clients that identify the device get a key of their own per device, so two machines do not interfere. Clients that do not send a device name share a single key, and signing in on the second machine invalidates the first.
The fix is the same either way: sign in again on the machine that stopped working. Keys you created yourself under Settings → Jolli Memory are never touched by this, so use one of those if you need a credential that stays put.
Share in Jolli failures
Share in Jolli posts a commit’s summary to your Jolli Space. When it fails, the HTTP status tells you why.
| Status | Meaning | What to do |
|---|---|---|
| 426 | Your extension or CLI is older than the server requires (“Plugin Outdated”). | Update the VS Code or IntelliJ extension, or the CLI, to the latest version. |
| 412 | This repo is not yet linked to a Jolli Space (binding_required). | Complete the Share flow, which prompts you to link the repo to a Space first. |
| 409 | The repo is already linked to a Space (binding_already_exists). | No action needed. A concurrent link already won. |
| 403 | The server rejected the request; the message shown comes from the server. | Usually a Jolli API key issued for a different tenant or org, or revoked access. Run jolli auth status, then re-authenticate. |
To check which workspace you are signed in to:
jolli auth statusIf you are not signed in at all, Share asks you to sign in or add a Jolli API key first (in VS Code the button warns “Please configure your Jolli API Key first”; the CLI jolli push reports “Not signed in to Jolli”). Run jolli auth login, or paste a Jolli API key in the Settings panel. A BYOK-only setup (Anthropic key, no Jolli account) cannot use Share in Jolli.
Note: a 429 (rate limit) is not a Share error. It comes from summary generation through the Jolli LLM proxy. Memory retries the summary once within a few seconds; if that retry also fails, it saves a placeholder summary that you can refill later by clicking Regenerate on that commit.
MCP tools not appearing
If your AI agent does not show the Jolli Memory tools (search, recall, and the rest), check these in order.
- Did enable run? MCP registration happens during
jolli enable. Runjolli statusto confirm Jolli is enabled in this repo. - Is the server registered for your host?
.mcp.jsonin your project root is wherejolli enablewrites thejollimemoryserver for Claude Code (and Copilot CLI). Other hosts use their own config: Cursor reads.cursor/mcp.json, and Gemini, Codex, OpenCode, VS Code Copilot Chat, Cline, Devin, Antigravity, Kimi Code CLI, and Hermes Agent each read a machine-wide file (see the host table in Use Your Memory from Any AI Agent (MCP)). Confirm the file for your host exists and contains the entry. - Was the agent installed before you enabled? Registration runs only during an explicit
jolli enable; it does not retry on later sessions. If you installed the agent after enabling, runjolli enableagain. - Restart your host. Your agent reads
.mcp.jsonat startup, so restart it (or reload the window) after enabling. - Check that the config file is valid JSON. If the file already exists but cannot be parsed, Jolli leaves it completely alone rather than risk overwriting your other servers, so that one host is skipped while
jolli enablestill reports success. Nothing appears on screen; the reason is written to.jolli/jollimemory/debug.login the repo, as a line beginningSkipping MCP registration. Open your host’s config file, fix the syntax (a trailing comma is the usual culprit), and runjolli enableagain. An empty file is fine and is treated as a fresh start. Codex is the exception: its config is TOML and Jolli edits only its own block, so a syntax error elsewhere in the file does not stop registration. Codex is skipped only when the file cannot be read at all, such as a permissions problem, logged asSkipping Codex MCP.
If the tools appear but search returns nothing or looks stale, rebuild the local search index:
jolli mcp --reindex--reindex rebuilds the search index only. It does not register the server or refresh the tool list, so if tools are missing entirely, the fix is in steps 1 to 3 above, not here.
For the full list of tools and how each host connects, see Use Your Memory from Any AI Agent (MCP).
Turning Jolli Memory off for a repository
Sometimes a repository should not be recorded at all. To turn Memory off for one:
jolli disableThis removes the git hooks and records the choice against the repository, so it stays off. It prints Jolli Memory disabled. Hooks removed. when it worked. Turn it back on with jolli enable, which clears the choice along with reinstalling everything.
Five things are worth knowing before you rely on it:
- It also keeps the repository out of session-statistics uploads, permanently. What the repository recorded before you disabled it is not uploaded later either. Other repositories on the machine keep syncing theirs.
jolli disable --integrations-onlyis not a way to turn Memory off. It removes only the repo’s MCP registration and deliberately leaves hooks, skills, and the recorded choice alone. Use plainjolli disableif you want the repository left alone.- If the choice cannot be written down, nothing is removed. Rather than take the hooks out and risk a later upgrade quietly switching Memory back on,
disablestops and tells you, leaving the repository as it was. If you see that, fix the reported problem and run it again. - The choice is recorded per repository, and it survives. Every worktree of the repository shares it, and automatic setup (including the Claude Code plugin’s, which runs on every session) will not override it. Only
jolli enableclears it. - Jolli’s tools may still appear in your agent afterwards, and that is expected.
disableremoves the MCP registration that belongs to this repository, which is the entry for Claude Code and Cursor. The other hosts share a single machine-wide entry across every repository you use, so removing it here would break Jolli for all of them; it is left in place deliberately. The tools stay listed, and they simply return nothing for a repository that is turned off.
In IntelliJ the Pause Jolli Memory checkbox in Settings does the same thing, and unpausing re-enables in the same way.
One limitation to be aware of with git submodules: the choice is stored per super-repository rather than per submodule, so turning Memory off inside one submodule turns it off for the other submodules of the same super-repository. Nothing is lost, and you can turn it back on from any of them, but it is wider than it looks.
Missing Memory Bank Markdown files
If a visible .md file in your Memory Bank folder was deleted (by you or another tool), restore it:
jolli heal-folderThis re-renders the missing Markdown from the hidden canonical JSON that Jolli keeps alongside it. It does not call the LLM and does not re-summarize anything, so it is fast and free. Your Memories on the orphan branch are the source of truth and stay intact either way.
Healing works only when your storage is in dual-write or folder mode (the default is dual-write). If the repo is set to orphan-only storage, there are no visible Markdown files to heal, and the command tells you so.
Still stuck
File an issue at support@jolli.ai and include your jolli doctor output. That output captures your hook, credential, lock, and queue state, which is exactly what we need to help.
Part 2: FAQ
Will Jolli Memory slow down my commits?
No. Your commit returns immediately. The git hook enqueues the work and hands it to a background worker, then gets out of the way. The summary is generated in a detached process and appears in your editor shortly after, usually within about 10 to 20 seconds. If a summary call fails, it retries once after a short delay, then saves a minimal record so nothing downstream breaks.
Does Jolli Memory send my code anywhere?
Your code stays private by default. Here is exactly what happens:
- Your transcripts stay on your machine by default. They are uploaded only if you turn on
syncTranscriptsfor Memory Bank cloud sync (or runjolli sync-memory-bank --transcripts); they are never sent on Share in Jolli. - To build a summary, your transcript and git diff are sent to the LLM. Either directly to Anthropic (when you use your own Anthropic key) or through the Jolli LLM proxy (when you signed in with Jolli). The proxy holds the payload in memory only for the request and never stores it or writes it to a log.
- Only the generated summary is saved, and it is saved locally. It leaves your machine when you click Share in Jolli, and then the summary (plus a structured JSON copy), the commit hash, branch, commit author, date, change stats, the changed-file paths, any extracted references (Linear, Jira, GitHub, Notion, Confluence, Asana, monday.com, Slack, Zoom, Vercel, Figma, Sentry, and Context7 library lookups), your repository’s remote URL, and any attached plans and notes are sent. Raw transcripts and the raw diff are never sent to a Jolli Space.
- Statistics about your AI sessions are a separate channel, and it is on when you are signed in. It sends usage figures and tool names, not conversation text, and unlike everything above it covers every repository Jolli is enabled in rather than only the ones you shared. See Does Jolli upload statistics about my AI sessions? below for what it carries and how to turn it off.
Does it work offline?
Mostly. Your commit and your local Memory storage work fully offline, because the commit hook and the on-disk storage do not need the network. Only summary generation needs the network, since it calls the LLM. If you commit while offline, the worker records a minimal entry and the summary fills in later. Make one more commit once you are back online and the worker processes the backlog.
Does it work with monorepos and git worktrees?
Yes to both. Jolli Memory is worktree-aware: hooks and summaries work across git worktree checkouts, and each worktree tracks its own current branch so its Memories stay consistent. A monorepo is just one repository, so it works normally. One Memory Bank folder can also hold many repositories, each in its own subfolder.
How do I see what Jolli has captured?
Several ways, depending on where you are:
- In the editor sidebar (Current Branch view). The Committed Memories section lists every commit’s Memory; click the eye icon on one to open it: a Quick recap and per-topic cards with Why this change, Decisions behind the code, and What was implemented callouts, plus Conversations, Context, and Files panels. The Working Memory block above it shows what will go into your next commit’s Memory before you commit, so you can see (and adjust) what is being captured.
- In the Memory Bank. The Memory Bank view browses every stored Memory across branches and repos, with search and a Tree / Timeline toggle. Because the Memory Bank is also plain Markdown on disk (default
~/Documents/jolli/<repo>/), you can open and read it with any tool, no extension required. See Memory Bank and Sync. - From the CLI.
jolli view # compact list of recent memories
jolli view --commit 1 # the latest commit's full Memory
jolli view --commit <hash> # any commit by hash prefix
jolli status # which agents and sessions Jolli detected
jolli recall # the current branch's compiled contextWhat is stored where?
| Data | Where it lives | Leaves your machine? |
|---|---|---|
| Raw transcripts | Orphan branch and Memory Bank folder (both local) | Only if you enable syncTranscripts (Memory Bank cloud sync); never on Share in Jolli |
| Git diff | Sent to the LLM at summary time | Not stored by Jolli, discarded after the summary is made |
| Generated summaries | Orphan branch and Memory Bank folder (both local) | Only when you click Share in Jolli |
| Session metadata | Project .jolli/jollimemory/ (local, gitignored) | No |
| Plans and notes | Local, attached to commits | Only the attached ones, on Share in Jolli |
| Usage telemetry | Local buffer, flushed in small batches | Yes; content-free, and attributable to your account only when signed in |
| Session statistics | Your machine’s dashboard database | Yes when you are signed in, for every enabled repository; turn it off with syncSessions. See the entry below |
The orphan branch (jollimemory/summaries/v3) is the source of truth and is completely separate from your code history. See Memory Bank and Sync for how the folder is laid out.
Is telemetry on, and can I turn it off?
Usage telemetry is on by default. It is content-free: event names, surface and version, OS and Node version, CPU architecture, a deployment-tier tag, a timestamp, a random install ID, and coarse counts. It never includes your code, file paths, commit messages, diffs, transcripts, Memory content, or repo or branch names. The payload carries no account identifier; note that when you are signed in to Jolli, events upload with your Jolli key, so the server can associate them with your account at ingest. BYOK or signed-out setups upload with no key and stay unattributed.
Events also carry which AI tool the work happened in, when that is known: one name from a fixed list (claude, codex, gemini, opencode, cursor, cursor-cli, copilot, copilot-chat, cline, cline-cli, devin, antigravity, kimi, hermes) and nothing else - not identity, not content, not a path. When the tool cannot be determined the field is left out rather than guessed, so a missing value means “not measured” and never “the CLI”. Events from clients older than 0.99.14 carry it not at all, and nothing fills it in after the fact.
Telemetry is separate from session statistics, which are not content-free and have their own switch. See the next entry.
Turn it off any time with either of these:
# Persisted opt-out
jolli telemetry off
# Or the standard environment variable
export DO_NOT_TRACK=1Check the current state with jolli telemetry status, and see exactly what would be sent with jolli telemetry inspect.
Does Jolli upload statistics about my AI sessions?
Yes, when you are signed in. Session statistics are what fill the web dashboard: session counts and durations, models used, token counts, estimated cost, and tool and skill names (including the names of any MCP servers you use). They also carry each session’s title, and many AI tools use your first message as the title. Conversation text, your code, diffs, tool arguments and Memory content are never part of it.
Your memory search queries go up too - the words you type into jolli search - because the dashboard’s Top Search Terms card is built from them. This is free text you wrote, so it is worth knowing about even though the searches themselves are not conversation content.
The scope is wider than anything else here. Everything else in this section leaves your machine only for a repository you chose to share. Session statistics go up for every repository Jolli is enabled in on this machine, connected to a Space or not, whatever the per-repository push switches say: your API key alone says which organization they belong to.
Turning it off, whole machine, persisted:
jolli configure --set syncSessions=falseOr open jolli dashboard and use Settings → Sync to Jolli → Sync session statistics, under the heading Session statistics — for the whole machine, which applies immediately. The editor extensions do not carry this switch, so in VS Code or IntelliJ use the command above.
To leave one repository out, jolli disable there keeps it out for good, including whatever it recorded beforehand. See Turning Jolli Memory off for a repository above.
If nothing is arriving: uploads need you signed in, need Node 22.13 or later (they read the dashboard’s database), and are throttled so several open projects do not each push the same rows. Push what is waiting with jolli doctor --sync-sessions.
Is my content used to train AI models?
No. Jolli’s Privacy Policy states that your personal information, inputs and data are not used, and not allowed to be used, to train third-party foundational AI models, and says the same specifically of Jolli Memory content.
Generating a summary does send your transcript and diff to the LLM, and nothing about that step retains them - see What is stored where? above for how the request is handled.
Where is my data stored?
In the United States. The Privacy Policy states that all data is stored and processed in the US, and that sub-processors process data in their own US-based infrastructure. Anthropic is named there as an AI service provider.
Remember that most of Jolli Memory never leaves your machine at all: summaries and transcripts live on the git orphan branch and in your Memory Bank folder, and only travel when you Share to a Space or turn on Memory Bank sync. See What is stored where? above.
Is my data encrypted?
Yes, in transit and at rest. Connections use HTTPS/TLS. The Privacy Policy lists AES-256 encryption for stored data, including server-side AES-256 on object storage and AES-256-GCM for API keys, tokens, and any personal information appearing in audit logs.
Where do I find your security and compliance documentation?
For certifications, sub-processor lists, retention commitments from our AI providers, and anything you need for a vendor review, email support@jolli.ai. The Privacy Policy and Terms of Service cover data handling.
Related
- Getting Started with Jolli Memory - install, sign in, and your first Memory.
- Reference - config keys, commands, and recovery paths.
- Supported AI Agents and Capture - why a session might not be captured.