NextFloor
A 3D floor plan for Home Assistant: draw your home in the built-in editor and control it in a neon 3D view. Try it in your browser.
Give Claude Code a persistent memory. Atlaso recalls your decisions before each prompt and captures them after each turn. Automatic, and shared across tools.
PluginsPython · ShellGitHub @atlaso-labsOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Long-term memory for Claude Code that follows you to Codex, Cursor and your other machines: recall before every prompt, capture after every turn, a skill and Ambient Memory (Pro). By Atlaso, the AI memory layer.
Taken from the repository README
Loading the full README.
Read the full README ↗Claude Code forgets everything the moment a session ends. Atlaso remembers — it recalls your decisions, conventions, and context before every prompt and captures what's new after every turn. Fully automatic; nothing to type.
Claude Code remembers a project with CLAUDE.md and its own auto memory, and both stay on one machine and inside Claude Code. This connector gives Claude Code a memory that also shows up in Codex, Cursor and your other tools, and on your other computers on Pro: the decisions behind the code, your conventions beyond CLAUDE.md, where you left off, and how you like to work. Recall runs before every prompt and capture after every turn; you never type "remember this". Free covers one device and one active tool. How it works · Docs
/plugin marketplace add atlaso-labs/claude-code
/plugin install atlaso@atlaso
What you get
Links: Why Atlaso for Claude Code · Setup guide · What is an AI memory layer? · Dashboard
The Claude Code connector for Atlaso memory. Lives under platform/tools/<tool>/
— one folder per tool we support (Claude Code first, then Claude Desktop, Codex, …).
It's deliberately thin: every hook just calls the tool-agnostic core
(platform/client → atlaso_client.Client). Nothing smart lives here; the engine
stays on the server.
Claude Code's event names are fixed; we brand our side (script names + the block we inject). Each hook → one Atlaso action:
| Atlaso hook | Claude Code event | What it does |
|---|---|---|
recall (hooks/recall.sh) | UserPromptSubmit | Inject recalled memory before each prompt. Synchronous, fast. |
capture (hooks/capture.sh) | Stop | Save the just-finished exchange. Instant local write (no network), synced later. |
start (hooks/start.sh) | SessionStart | Inject eligible personal + current-project Ambient Memory, then sync in the background. |
end (hooks/end.sh) | SessionEnd | Flush this session's memories up + pull new ones. Detached. |
Injected block (no instructions — the model decides how to use it):
=== Atlaso Memory ===
- recalled note
- recalled note
=== Atlaso Memory ===
Hooks fail open: a missing interpreter or any error → silent no-op, the turn proceeds. A light commodity filter skips trivial acks ("ok", "thanks") on capture; the real "worth keeping" gate runs server-side.
tools/claude-code/
hooks/ recall.sh · capture.sh · start.sh · end.sh (shims)
atlaso_cc/ recall.py · capture.py · sync.py · transcript.py · _shim.py
tests/ test_recall · test_capture · test_transcript
Later: .mcp.json (active memory tools), a SKILL.md, and a plugin.json to
bundle all of it as the installable atlaso plugin.
Hooks resolve the SDK venv (it has httpx) and the atlaso_client package by
relative path. Run the tests:
cd platform/tools/claude-code
PYTHONPATH=".:../../client" ../../sdk/.venv/bin/python -m pytest tests -q
Manual end-to-end (offline, throwaway dir):
export ATLASO_GLOBAL_PATH=/tmp/atlaso-hooktest # redirects auth + cache here
printf '{"type":"user","message":{"content":"always use pnpm not npm"}}\n' > /tmp/t.jsonl
echo '{"transcript_path":"/tmp/t.jsonl"}' | ./hooks/capture.sh
echo '{"prompt":"which package manager"}' | ./hooks/recall.sh # → injects the block
ATLASO_DEBUG=1 writes per-hook logs to <atlaso dir>/atlaso-*.log.
When enabled on an eligible plan, the start hook requests a brief for this tool and the host event's project directory. Personal context can accompany the current project's context. Missing or untrustworthy project identity requests personal context only. A first session can receive a brief without a local cache. Each session validates the current server policy; disabled, offline, rejected, or incompatible responses inject no Ambient Memory. Reopening after recovery retries automatically. Per-turn recall remains a separate feature.
The Python start path has a three-second budget on POSIX; the host hook manifest sets a five-second timeout, including runtime startup. The latter is also the Windows bound. First-time runtime installation can exceed that budget and yield no brief until dependencies are available. These source changes require publishing the rebuilt plugin and updating the installed version; a source checkout alone does not update a user's plugin. Host versions must actually execute SessionStart.