Skip to content
Agentmart
Submit a tool

update-agent

Use when the user wants to modify an existing agent — change personality, workflow, add or edit a scheduled job, update Discord channels, swap a job's model…

Skill by TerrysPOV

IndexedMIT★ 17
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/terryspov-update-agent

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use when the user wants to modify an existing agent — change personality, workflow, add or edit a scheduled job, update Discord channels, swap a job's model, or delete the agent. Trigger phrases include "update an agent", "edit agent", "modify agent", "change agent", "/claudeclaw:update-agent", "add a job to <agent>", "remove job from <agent>", "delete agent <name>".

Use cases: writing, productivity, agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/update-agent

What's inside

Skill name
update-agent
Description
Use when the user wants to modify an existing agent — change personality, workflow, add or edit a scheduled job, update Discord channels, swap a job's model, or delete the agent. Trigger phrases include "update an agent", "edit agent", "modify agent", "change agent", "/claudeclaw:update-agent", "add a job to <agent>", "remove job from <agent>", "delete agent <name>".
License
MIT
Instructions
275 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Update Agent

This skill walks the user through updating an existing agent without losing its accumulated MEMORY.md state.

## Invariants (READ THIS FIRST)

> **NEVER read or write `agents/<name>/MEMORY.md`.** It's the agent's accumulated state — preserving it across edits is the entire point of this skill.
>
> **NEVER touch `agents/<name>/session.json`.** Same reason.
>
> The **only** exception is the "Delete agent" menu option, which removes the entire `agents/<name>/` directory by design.
>
> All edits go through helpers in `src/agents.ts` — they're full-file rewrites with marker-aware patching. Do not hand-edit SOUL.md or CLAUDE.md with the Edit tool.

## Tone

Friendly, brief, opinionated. Same vibe as `create-agent`. Acknowledge each answer in a sentence or less and move on.

## Flow

### Step 1 — List agents

If `$ARGUMENTS` already names an agent, skip to Step 3. Otherwise:

```bash
bun -e 'const { listAgents } = await import(`${process.env.CLAUDECLAW_ROOT || "."}/src/agents.ts`); console.log((await listAgents()).join("\n"));'
```

Show the list and ask "Which one?".

### Step 2 — Pick agent

Capture the chosen name. Validate it exists in the list above.

### Step 3 — Show current state

```bash
bun -e '
const { loadAgent, listAgentJobs } = await import(`${process.env.CLAUDECLAW_ROOT || "."}/src/agents.ts`);
const ctx = await loadAgent("AGENT_NAME");
const jobs = await listAgentJobs("AGENT_NAME");
console.log("SOUL.md (head):");
console.log((await Bun.file(ctx.soulPath).text()).split("\n").slice(0,30).join("\n"));
console.log("\nJobs:");
for (const j of jobs) console.log(`  - ${j.label} (${j.cron}) ${j.enabled ? "" : "[disabled]"} ${j.model ? "model="+j.model : ""}`);
'
```

### Step 4 — Menu loop

Present this menu and **loop until the user picks Done**. One selection at a time.

```
1. Workflow         — rewrite the agent's operating manual
2. Personality      — rewrite the personality block
3. Add job          — add a new scheduled task
4. Edit job         — change cron / trigger / enabled / model on an existing job
5. Remove job       — delete a scheduled task
6. Discord channels — re-set the channel list
7. Data sources     — rewrite the data sources block
8. Default model    — set or clear the agent's defaultModel (opus/sonnet/haiku/glm — middle fallback tier)
9. Delete agent     — nuke the entire agent directory (requires re-typing the name)
10. Done            — exit
```

For each option, ask the relevant follow-up question(s), then run the matching `bun -e` invocation. Use temp JSON files for any multi-line content (workflow, personality, trigger prompts) to keep escaping sane.

> **IMPORTANT — Jobs are LOCAL cron.** The Add/Edit/Remove job options below operate on `agents/<name>/jobs/<label>.md` files which are scanned by `loadJobs()` and fired by ClaudeClaw's in-process cron loop. They are NOT the remote `schedule` skill. Do NOT invoke the `schedule` skill from this wizard.

#### Mode selection (Options 1, 2, 7)

Before collecting new content for Workflow / Personality / Data sources, ask:

```
How should this be applied?
  a. Append        — add to the existing <section> (keeps everything already there) [DEFAULT]
  b. Replace       — wipe and rewrite the entire block
  c. Show current  — print the current content first, then ask again
```

If the user picks `a` or just hits enter → use `mode: "append"` (default — non-destructive).
If `b` → use `mode: "replace"`.
If `c` → read the current marker block from SOUL.md (Workflow/Personality) or CLAUDE.md (Data sources), print it back to the user, then re-prompt for the mode choice.

To read current content for Show current:

```bash
bun -e '
const { loadAgent } = await import(`${process.env.CLAUDECLAW_ROOT || "."}/src/agents.ts`);
const ctx = await loadAgent("AGENT_NAME");
const path = "SOUL_OR_CLAUDE_PATH"; // ctx.soulPath or ctx.claudeMdPath
const text = await Bun.file(path).text();
const start = "<!-- claudeclaw:workflow:start -->"; // or :personality: / :datasources:
const end   = "<!-- claudeclaw:workflow:end -->";
const i = text.indexOf(start), j = text.indexOf(end);
console.log(i === -1 ? "(no existing block)" : text.slice(i + start.length, j).trim());
'
```

#### Option 1 — Workflow

Run the **mode selection** above, then re-prompt: "What's the new workflow? (multi-line)".
Write to `/tmp/claudeclaw-update.json` as `{"value": "...", "mode": "append"|"replace"}` then:

```bash
bun -e '
import { readFileSync } from "fs";
const { updateAgent } = await import(`${process.env.CLAUDECLAW_ROOT || "."}/src/agents.ts`);
const { value, mode } = JSON.parse(readFileSync("/tmp/claudeclaw-update.json", "utf8"));
await updateAgent("AGENT_NAME", { workflow: { value, mode } });
console.log("workflow updated (" + mode + ")");
'
```

#### Option 2 — Personality

Run the **mode selection** above, then re-prompt for the new personality content:

```bash

From TerrysPOV/ClaudeClaw-Plus, MIT.

Signals

Stars
17
Forks
8
Open issues
21
Last commit (this folder)
May 14, 2026 (5 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from TerrysPOV

Cite this page

update-agent skill. Agent Mart. https://agentmart.dev/skills/terryspov-update-agent (last updated 2026-10-24)