Loom gives agents in coding harnesses shared, durable memory: decisions, instructions, and project knowledge survive session boundaries and return when they become relevant. This tutorial connects that memory before any later tutorial depends on it.
This tutorial opens the public tutorial repository in your coding harness, installs Loom, adds your private store bundle, and verifies the connection. After connecting, take the five-minute cross-session memory loop in Tutorial 01; the repository-specific setup begins in Tutorial 03.
If you do not have Loom access, sign in at https://loomcloud.ai, submit the private-beta request, and wait until the site shows your Stores or Install page. Do not continue while the request is pending. If you have an access code, enter it in the request form. The site confirms Access request received; return through the same sign-in flow after approval. Keep your connection bundle private.
The tutorial path uses the public palmerpenguins Python repository because it has real package code, tests, and bundled CSV data without requiring access to a private repository. Check it out into a folder named demo:
git clone https://github.com/mcnakhaee/palmerpenguins.git demo
cd demoOpen the cloned demo folder as your agent's workspace, or start your agent from that directory. Keep that workspace open as you continue through the tutorials.
palmerpenguins repository. Show the repository root and configured Git remote, but do not modify any files.palmerpenguins repository. Its root is the open demo folder, and its configured remote points to the public upstream repository. No files were changed.Only continue after the repository is open in your agent. This gives Loom a real project scope for the memory exercises that follow.
The plugin gives your coding harness three pieces that work together. Loom skills teach the agent how to use memory. The MCP connection is the bridge that reads and writes stores. Lifecycle hooks bring relevant context into the conversation automatically. A successful install means all three are available in a fresh session, not merely that an install command completed.
Install the Loom plugin from the marketplace for your coding harness. The authenticated install page at https://loomcloud.ai/install shows the current command for Claude Code, Codex, or Hermes. The rest of the tutorials use shared prompts that work in Claude Code and Codex; this installation section calls out each harness only where its commands or hook behavior differ.
First ask the agent to run the installed loom-install skill as a plugin-only preflight. Store connectivity is verified only after §3 installs your private bundle:
loom-install skill as a plugin-only preflight. Verify the bundled runtime, skills, MCP startup, and hooks, but do not claim store connectivity until I install my private bundle in §3.Only continue after the plugin-only preflight completes cleanly.
An upgrade refreshes the plugin or bundle, but it does not prove that its runtime dependencies, connection bundle, and lifecycle hooks still match the new version. After every upgrade, start a fresh Codex, Claude Code, or Hermes session so it discovers the new loom-install skill, rerun that skill, and follow any final restart or hook-trust step it reports. Do not assume that a successful plugin-manager command alone completed the upgrade.
Installing the plugin is not enough by itself. Loom depends on lifecycle hooks to prime memory at session start, refresh relevant context on each prompt, check actions before and after tools run, and preserve optional compaction checkpoints.
For Codex, fully restart Codex or open a fresh task after installation. When Codex asks whether to trust a Loom plugin hook, review that it comes from loom@loom and choose the persistent Trust/Enable action. Trust and enable all six Loom hook events: SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, PreCompact, and PostCompact. In the Codex desktop app, you can also review them under Settings → Hooks.
For Claude Code, installing the plugin enables it. Start a fresh session, then open the read-only hook browser:
# start a fresh Claude Code session, then run:
/hooksIn /hooks, verify that Loom appears with source Plugin under SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, and PreCompact. In the Claude desktop app, you can also verify them under Settings → Hooks. Claude Code must not be launched with --bare, and disableAllHooks must be absent or false. Claude trusts hooks as part of the plugin you chose to install; /hooks is where you verify that the enabled plugin contributed them.
Now start one more fresh coding-harness session in the tutorial repository. Verify that its opening context includes Loom's standing-memory prime. Then submit an ordinary prompt and confirm the harness reports the Loom prompt hook running. If either check is missing, stop: re-enable the plugin, complete any harness-specific trust prompts, and repeat the verification before continuing. MCP calls can still work while hooks are disabled, which is why a successful store listing alone is not sufficient.
The plugin provides Loom's behavior, while the private store bundle tells it which stores your account can reach. Keeping this configuration outside the repository lets the same project remain safe to share without exposing connection material.
After signing in to Loom Cloud, open https://loomcloud.ai/install. The current bundle renders a configured default store plus tutorial and Kanban stores. An older installed bundle can lack the top-level default entry or use an older tutorial-store alias; if so, replace it with the current bundle before continuing.
Copy the bundle to ~/.loom/stores.toml yourself or provide it to the agent during loom-install. Use the rendered values; never hand-type or invent keys from a reference example.
A redacted bundle has this shape:
default = "coding"
[coding]
description = "Primary coding memory store."
endpoint = "tcp://loomcloud.ai:7443"
store = "<your coding store id>"
namespace_scheme = "loom-8"
server_key = "<redacted broker key>"
store_key = "<redacted coding store key>"
domain = "CodingDomain"
[loom_demo]
description = "Seeded Loom tutorial demo store with sample data."
endpoint = "tcp://loomcloud.ai:7443"
store = "<your demo store id>"
namespace_scheme = "loom-8"
server_key = "<redacted broker key>"
store_key = "<redacted demo store key>"
domain = "CodingDomain"
[kanban]
description = "Kanban store for multi-agent coordination."
endpoint = "tcp://loomcloud.ai:7443"
store = "<your kanban store id>"
namespace_scheme = "loom-8"
server_key = "<redacted broker key>"
store_key = "<redacted kanban store key>"
domain = "LogDomain"Do not paste live keys into source files, issues, commits, screenshots, or tutorial content.
Now rerun the full connection check:
loom-install and verify that every configured store is reachable. Do not expose any connection keys.Do not continue to store exercises until this post-bundle check succeeds.
The starter bundle normally reserves loom_demo and kanban; your primary coding-store alias and any stores you create may vary. Always confirm the live list before continuing.
<exact name>, its writable tutorial store is <exact name>, and its Kanban store is <exact name>. I will use those returned names in later prompts rather than guessing aliases.If Loom lists named stores but describing default reports that no endpoint is configured, or if no writable tutorial store is present, the connection is only partially configured. Install the current signed-in bundle and rerun loom-install; do not silently substitute an unrelated store.
If the list is empty or the MCP connection fails, stop here and rerun loom-install. Connecting to and describing individual stores belongs to Tutorial 02: Connect to multiple stores.
loom_demoOnce the installed bundle confirms that the exact loom_demo alias exists, make it the working store for this session:
loom_demo and make it the default for this session only. Confirm the effective session default, and do not edit ~/.loom/stores.toml.loom_demo store and changes only this session's default routing.loom_demo is now the default for this session. Persistent configuration was not changed.This is intentionally the first store-selection action after connection. A new coding-harness session returns to the default from your installed bundle until you repeat this prompt.
The loom-coding skill is the main coding-agent discipline: it loads relevant project context, checks standing directives, and captures durable decisions as work progresses.
This check separates “the agent can reach a store” from “the agent knows how to use project memory safely.” You should see both before saving any tutorial facts.
loom-coding skill is installed and can load its current guidance. Do not write a fact yet.loom-coding, and verifies that its live guidance is readable.loom-coding skill is available and active. I can use its read, capture, and action-checking discipline in the later repository tutorials.If the skill is missing, repair the Loom plugin installation before continuing.
palmerpenguins repository and open its demo folder in your agent before installing Loom.loom-install before working with Loom memory.~/.loom/stores.toml as private connection material.loom_demo the session-only default before beginning the tutorial exercises.loom-coding is available before starting repository work.