Skip to content
Agentmart
Submit a tool

nautilus-sync

Sync a personal skill or agent from ~/.claude/ into a public-facing nautilus-shaped playbook repo as a sanitized loadable artifact.

Skill by tcbuilds

IndexedMIT
Write a review

Chalk Labs

Need help deploying nautilus-sync?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

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/tcbuilds-nautilus-sync

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

Sync a personal skill or agent from ~/.claude/ into a public-facing nautilus-shaped playbook repo as a sanitized loadable artifact. Use when asked to "sync skill X to nautilus", "promote agent Y to playbook", "nautilus-sync skill Z", "publish skill to my playbook repo".

Use cases: 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
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/nautilus-sync

Tools it pre-approves 15

From allowed-tools in SKILL.md: the agent may use these without asking you each time.

  • Read,
  • Write,
  • Edit,
  • Bash(python3:*),
  • Bash(cat:*),
  • Bash(ls:*),
  • Bash(mkdir:*),
  • Bash(cp:*),
  • Bash(test:*),
  • Bash(diff:*),
  • Bash(wc:*),
  • Bash(rg:*),
Show 3 more
  • Bash(grep:*),
  • Grep,
  • Glob

What's inside

Skill name
nautilus-sync
Description
Sync a personal skill or agent from ~/.claude/ into a public-facing nautilus-shaped playbook repo as a sanitized loadable artifact. Use when asked to "sync skill X to nautilus", "promote agent Y to playbook", "nautilus-sync skill Z", "publish skill to my playbook repo".
License
MIT
Allowed tools
Read,, Write,, Edit,, Bash(python3:*),, Bash(cat:*),, Bash(ls:*),, Bash(mkdir:*),, Bash(cp:*),, Bash(test:*),, Bash(diff:*),, Bash(wc:*),, Bash(rg:*),, Bash(grep:*),, Grep,, Glob
Instructions
135 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts
  • Pre-approves some shell commands

Files (2)

  • SKILL.md
  • sanitize.py · scripts/

SKILL.md (first lines)

# Nautilus Sync

Bridge a personal skill (`~/.claude/skills/<name>/`) or agent (`~/.claude/agents/<name>.md`) into a nautilus-shaped public playbook repo as a sanitized, loadable artifact. The output preserves the directory layout that `install-tools.sh` expects so the artifact installs cleanly into other people's `~/.claude/`.

## Usage

```
/nautilus-sync skill <name>            # uses $NAUTILUS_REPO or default
/nautilus-sync agent <name>
/nautilus-sync skill <name> --repo /path/to/nautilus
```

Natural-language equivalents trigger the same flow ("sync the git-platform-engineer agent to my nautilus repo", "promote backlink-builder to the playbook").

## Target repo resolution

The skill needs to know where the public nautilus-shaped repo lives on disk. Resolution order:

1. `--repo PATH` flag if passed.
2. `$NAUTILUS_REPO` environment variable.
3. `$HOME/nautilus` if it exists and contains both `skills/` and `agents/` directories.
4. Otherwise: error out with a clear message asking the user to clone the repo (`gh repo clone <owner>/<nautilus-fork> ~/nautilus`) or pass `--repo`.

The resolved path is referred to as `$REPO` below.

## Step-by-step

### 1. Parse args

Extract `type` (`skill` or `agent`) and `name` from the invocation. If the user gave only a name, infer type by checking which path exists:
- `~/.claude/skills/<name>/SKILL.md` → skill
- `~/.claude/agents/<name>.md` → agent

If neither exists, report the missing paths and stop.

### 2. Resolve target paths

| Type | Source | Target |
|---|---|---|
| skill | `~/.claude/skills/<name>/` (full directory) | `$REPO/skills/<name>/` (full directory) |
| agent | `~/.claude/agents/<name>.md` | `$REPO/agents/<name>.md` |

Skills are directories — copy every file inside (SKILL.md plus any `scripts/`, `references/`, `templates/`, helper assets). Agents are single files.

### 3. Run the sanitizer

The sanitizer at `scripts/sanitize.py` is a stdin → stdout filter. For each source file (every file inside a skill directory, or the single agent file), pipe through the sanitizer and capture stats from stderr.

```bash
python3 ~/.claude/skills/nautilus-sync/scripts/sanitize.py \
  < <source-file> > /tmp/nautilus-sync.sanitized 2> /tmp/nautilus-sync.stats
```

Stats line entries look like `path: 4`, `identity: 2`, `credential material: 1`, etc.

For binary files inside a skill (rare — usually images), copy them as-is without sanitization.

### 4. Verify nothing slipped through

After sanitizing every file, run a final grep against the staged outputs to catch anything the sanitizer's regex set missed:

```bash
rg -n '/home/|/Users/|@gmail\.com|@yahoo\.com|@outlook\.com' /tmp/nautilus-sync-staging/
```

If anything matches, stop and surface it to the user. Don't silently overwrite — let them decide whether to extend the sanitizer or hand-edit before publishing.

### 5. Write to the target repo

For skills:
- `mkdir -p $REPO/skills/<name>/` (and any subdirectories the source uses)
- Copy each sanitized file into place
- If the target directory exists, replace the contents (sync semantics — match `install-tools.sh` behavior)

For agents:
- Write the sanitized file to `$REPO/agents/<name>.md`

Before overwriting, if a target file already exists:
- Compute line count of existing target vs new content (`wc -l`).
- If new content differs by more than 50% of existing line count, print a warning and show the user a unified diff (`diff -u` between old and new) before overwriting.

### 6. Update the index

| Type | Index file |
|---|---|
| skill | `$REPO/skills-index.md` |
| agent | `$REPO/agents-index.md` |

Read the index. If a row matching `\`/<name>\`` (skill) or `\`<name>\`` (agent) already exists, leave the index untouched.

Otherwise append a new row to the markdown table.

**Skill row format:**
```
| `/<name>` | <one-line purpose> | <workflow phase or "general"> |
```

**Agent row format:**
```
| `<name>` | <specialization> | <when to delegate> |
```

Use `Edit` to insert the row in alphabetical order within the existing table. Preserve the table header and any explanatory paragraphs around it.

### 7. Print summary

Output to the user:
- Source path → target path (per file for skills with multiple files)
- Sanitization stats from stderr (e.g. "stripped 4 path refs, 2 identity strings, 1 API key")
- Whether the index was updated or already had the entry
- Whether a >50% size change warning was triggered
- Final grep result confirming no leakage in the staged output

## Constraints

- **Single source of truth is `~/.claude/`.** Never write back to the source. Sync flows downstream only.
- **Idempotent.** Rerunning on an unchanged source produces no diff. The sanitizer is deterministic.
- **Loadable artifacts only.** The output must match the directory shape `install-tools.sh` expects: skills as directories under `skills/<name>/` containing `SKILL.md`, agents as single files under `agents/<name>.md`. Don't reframe into separate prose docs — keep frontmatter intact so Claude Code can load the artifact directly.
- **No fabrication.** If sanitization would gut the skill (e.g. it's irreducibly tied to a private API), report that to the user instead of shipping a broken artifact.

From tcbuilds/nautilus, MIT.

More from tcbuilds/nautilus

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Jun 25, 2026 (4 months ago)

From GitHub (fetched Oct 24, 2026).

Details

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

More from tcbuilds

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get nautilus-sync running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying nautilus-sync?

CallGet help
Cite this page

nautilus-sync skill. Agent Mart. https://agentmart.dev/skills/tcbuilds-nautilus-sync (last updated 2026-10-24)