Give the agent a memory
The agent forgets everything between conversations. A memory file fixes that. AGENTS.md (or CLAUDE.md) goes into the prompt on every turn, so put in it what the agent should always know, such as how the project works and what your rules are.
Try it
- Press Type it, then Enter.
/inithas the agent read the project and writeAGENTS.md. Choose Yes. - Add a rule. Type
/memoryand add a line in the editor, or ask:Add a rule to AGENTS.md: every button has a title attribute that says what it does. - Type
/clear. The conversation is gone, but the memory file stays. - Ask:
Add a "Clear completed" button under the list that removes the done todos. Change only index.html and app.js.You don’t say anything about titles. Does the new button get one anyway?
In real work: memory files grow with the project and get reviewed like code.
Run a skill
A skill writes down how to do one kind of task, so you only explain it once. It lives in .agents/skills/<name>/SKILL.md. Its steps are your team’s way of doing things, which the model can’t know on its own. You can run a skill by name, like a command.
Try it
- Press Run and sign with the message
<img src=x onerror=alert(1)>. A broken image appears, which means your text became code on the page. - Open
.agents/skills/web-security/SKILL.mdin the editor. It has two steps. - Press Type it, then Enter. The skill goes to the agent along with your words.
- Read each diff. The fix is in
app.js, and step 2 of the skill addsSECURITY.md. - Press Run and try the same attack. This time it should show as plain text.
- Sign as
Annwith<b>Hello</b>. Does the entry readAnn: <b>Hello</b>, with Ann in bold? A quick fix often shows**Ann**or<strong>Ann</strong>instead. If it does, steer the agent:The name doesn't look right on the page. Keep it bold: build the <strong> with createElement, and set its textContent.
In real work: a security review needs many more checks and tools, and someone who knows security. A skill helps, but it won’t make a page safe on its own.
Write a skill
You can run a skill by name, but a skill can also load by itself. On every turn the agent sees each skill’s description, and when your task fits one, that skill comes along.
Write any skill you like. If you’re not sure where to start, write a docs skill that covers how this project writes all of its documentation, not just the README.
Try it
- Press Type it, then Enter, and the agent saves the skill as given. Or write your own
.agents/skills/<name>/SKILL.mdin the editor, with adescriptionthat says when to use it. - Type
/clear. A new conversation sees only the skill’s name and description, just as the next session would. - Ask for a task the description covers, without naming the file, such as
Document this project in README.md.orAdd comments to app.js. - Look for
● Skill(docs)before the agent starts. It means the description fit and the skill was loaded. Running/docsyourself doesn’t count here.
In real work: a bigger model reads the descriptions and picks a skill itself. This small one doesn’t, so here the words of your task are matched against each description. In a real team, skills are shared, versioned and tested.
A tool from outside
A model knows the libraries it was trained on, not the one your project uses. An MCP server gives the agent tools from outside the project. Here it’s a docs server that holds the docs for lib/pretty-date.min.js.
Try it
- Type
/mcp. There are no servers yet, and one is available. - Type
/mcp add docs. This adds it to.mcp.jsonand gives the agent the tooldocs.get_docs. Type/mcpagain and it shows as connected. - Press Type it, then Enter. Look for the
docs - get_docs (MCP)call before the edit. - Press Run and sign. Does the entry say
just now?
In real work: an MCP server runs outside the browser. It needs setup and trust, and it can reach real data. This one is built into the site and gives fixed answers.
You're watching a recorded session. Only your own work in Try it counts toward the goals.