new · git:20260410.3244338 · 2026-04-10 · sha256 93151f54f960774f

new git:20260410.3244338A

Immutable. This exact content is served forever at /api/v1/blob/93151f54f960774f.

---
name: new
description: Start a new session — save summary to memory, then mark as reset so next message gets a fresh greeting. OpenClaw-compatible. Triggers on /new, /reset, /agent:new, "nueva sesión", "new session", "reset".
user-invocable: true
---

# /new — Start a new session

Save the current session to memory, then mark it as "reset pending" so the next message triggers a fresh greeting (like OpenClaw).

## How this works (architecture)

OpenClaw's `/new` generates a new session ID and runs a greeting prompt on the next turn. In Claude Code, skills CANNOT invoke native `/clear`. Instead, we:

1. **Save** the current session to `memory/YYYY-MM-DD.md`
2. **Write a marker** `.session-reset-pending` with the greeting prompt
3. **Respond** with a brief "new session" acknowledgement
4. **On the next message**, the agent detects the marker, delivers the greeting, deletes the marker

This is the honest simulation of a session reset when native `/clear` is not invokable.

## Steps

1. **Detect surface** (CLI vs messaging).

2. **Summarize the current session** to memory:
   ```bash
   DATE=$(date +%Y-%m-%d)
   TIME=$(date +%H:%M)
   ```
   
   Append to `memory/$DATE.md`:
   ```markdown
   
   ## Session summary (<TIME>) — before /new
   
   - <key point>
   - <key point>
   
   ### Open items
   - <pending>
   ```
   
   If the session was trivial, skip this step but still do the next one.

3. **Write the reset marker**:
   ```bash
   cat > .session-reset-pending << 'EOF'
   A new session was started via /new or /reset. Greet the user in your configured persona, if one is provided. Be yourself - use your defined voice, mannerisms, and mood. Keep it to 1-3 sentences and ask what they want to do. If the runtime model differs from default_model in the system prompt, mention the default model. Do not mention internal steps, files, tools, or reasoning.
   EOF
   ```
   
   (This is the EXACT prompt from OpenClaw's session-reset-prompt.ts)

4. **Respond** briefly per surface:

### CLI
```
🔄 New session started. Summary saved to memory/<DATE>.md.

Send a message to receive the welcome greeting.
(Or if you also want to clear the REPL context, run /clear afterward.)
```

### WhatsApp
```
🔄 *Session reset*. Send a message and I'll greet you again 👋
```

### Telegram
```
🔄 **Session reset.** Send a message to get the fresh greeting.
```

**IMPORTANT**: Respond in the user's language. The templates above are English defaults — translate on the fly to match the user (Spanish, Portuguese, French, whatever they speak).

5. **Do NOT** invoke `/clear` — you can't. The marker file handles the "fresh start" on the next message.

## On the NEXT message

When the user sends their next message, you will see `.session-reset-pending` in the workspace. If it exists:

1. **Read** the marker contents — that's the greeting prompt
2. **Follow it** — greet the user in your configured persona, 1-3 sentences, ask what they want to do
3. **Delete** `.session-reset-pending`
4. **Then handle** the user's actual message (if they said more than just a greeting trigger)

This makes `/new` feel like a real session reset, even though technically Claude Code's context still has prior turns.

## Important

- APPEND-only to daily logs, never overwrite.
- The marker file is the key mechanism — it lets the NEXT turn deliver the greeting.
- On CLI, the user can additionally run `/clear` to wipe REPL context if desired.
- This is the OpenClaw-parity implementation of `/new`.