edit
Open a file or URL in a GUI editor (modification intent, async)
Skill by Wave-Engineering
Chalk Labs
Need help deploying edit?
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.
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/wave-engineering-edit
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.
About
Use cases: writing
Reviews
Write a reviewNo 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/edit
What's inside
- Skill name
edit- Description
- Open a file or URL in a GUI editor (modification intent, async)
- License
- MIT
- Instructions
- 120 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- introduction.md
SKILL.md (first lines)
<!-- introduction-gate: If introduction.md exists in this skill's directory AND
the marker file /tmp/.skill-intro-edit does NOT exist, read introduction.md,
present its contents to the user, then create the marker: touch /tmp/.skill-intro-edit
Do NOT delete introduction.md — it lives in a protected directory.
Do this BEFORE executing any skill logic below. -->
# Edit
Open a file or URL in a GUI editor for modification. The application launches asynchronously in a separate window so the chat can continue.
Unlike `/view` (read-only intent), `/edit` prefers full-featured editors over lightweight viewers.
## Resolve Target
{{#if args}}
The target is: `{{args}}`
{{else}}
No target provided. Ask the user what file or URL they want to edit.
{{/if}}
The target may be an exact path, a URL, or a **natural language description**. Resolve it:
1. **URL** (`https://`, `http://`, `ftp://`) — open in the browser (the browser is the editor for web content):
```bash
file-opener --mode edit <url>
```
2. **Exact file path** (starts with `/`, `./`, `../`, `~`, or looks like a relative path with an extension) — resolve to absolute path and confirm it exists.
3. **Description** (e.g., "the install script", "the CI config", "the main entry point") — search the codebase or filesystem to find the intended file:
- Use context clues: "install script" → `install.sh`, "hosts file" → `/etc/hosts`, "the PRD" → `docs/prd-wave-status-cli.md`
- Use `Glob` or `Grep` to locate candidates if the intent isn't immediately obvious
- If multiple candidates match, pick the most likely one or ask the user to clarify
4. Determine the file extension (e.g., `.py`, `.png`, `.csv`).
## Look Up Preference
Check the user's memory system for a file named `pref_file_apps.md`. This file contains a table mapping file extensions to preferred applications for view and edit modes.
- If the file exists, look up the target's extension in the **Edit App** column.
- If a preference is found and it is not `-`, use that application.
- If no preference is found, proceed to the default flow below.
## Select an Editor (No Preference Found)
When no memory-backed preference exists for this extension, choose an editor using this priority:
### 1. Check `$VISUAL` and `$EDITOR`
Run `echo $VISUAL` and `echo $EDITOR`. If either is set to a **GUI application** (e.g., `code`, `subl`, `gedit`, `kate`), suggest it. **Skip terminal-only editors** (`vim`, `nvim`, `nano`, `emacs -nw`, `ed`) — prefer GUI apps that open in their own window.
### 2. Suggest by File Type
For common extensions, suggest appropriate **editors** (not viewers):
| Extensions | Suggested Editor | Package |
|-----------|-----------------|---------|
| `.py`, `.js`, `.ts`, `.go`, `.rs`, `.sh`, `.md`, `.json`, `.yaml`, `.yml`, `.toml`, `.html`, `.css`, `.xml`, `.sql`, `.rb`, `.java`, `.c`, `.cpp`, `.h` | `code` (VS Code) | `code` |
| `.png`, `.jpg`, `.jpeg`, `.gif`, `.bmp`, `.svg`, `.webp` | `gimp` | `gimp` |
| `.pdf` | `libreoffice --draw` | `libreoffice` |
| `.csv`, `.xlsx`, `.xls`, `.ods` | `libreoffice --calc` | `libreoffice` |
| `.doc`, `.docx`, `.odt`, `.rtf` | `libreoffice --writer` | `libreoffice` |
| `.ppt`, `.pptx`, `.odp` | `libreoffice --impress` | `libreoffice` |
Check if the suggested app is installed (`which <app>`). If it is, use it. If not, fall back to step 3.
### 3. System Default
Fall back to `file-opener --mode edit <target>` which uses the system default handler.
## Open the Target
Use the `file-opener` helper script (installed at `~/.local/bin/file-opener`):
```bash
# With a known or selected editor:
file-opener --mode edit --app <editor> <target>
# With system default:
file-opener --mode edit <target>
```
**If `file-opener` is not installed**, fall back to a direct platform command:
- Linux: `nohup xdg-open "$target" >/dev/null 2>&1 & disown`
- macOS: `open "$target"`
## Handle Failures
If the open command fails, or the user wants a different editor:
1. **Ask the user** what application they would prefer for this file type in edit mode.
2. **Check if it is installed**: run `which <app>`.
3. **If not installed**, suggest an install command:
- Debian/Ubuntu: `sudo apt install <package>`
- Fedora: `sudo dnf install <package>`
- macOS: `brew install <package>`
- Offer to run the install command for the user.
4. **Save the preference** to memory. Create or update the file `pref_file_apps.md`:
```markdown
---
name: Preferred applications for file types
description: User's preferred GUI applications for opening files, organized by extension and mode (view/edit)
type: feedback
---
| Extension | View App | Edit App |
|-----------|----------|----------|
| .py | - | code |
```
- If the file already exists, update the existing row for this extension, or add a new row.
- Only update the **Edit App** column. Leave **View App** as `-` if not previously set.
5. **Retry** with the new preference.
## Report
After successfully opening, confirm to the user:
> Opened `<target>` in `<app>` for editing (or system default).From Wave-Engineering/claudecode-workflow, MIT.
More from Wave-Engineering/claudecode-workflow
- 0.584score
multithread
Wave-Engineering
Parallelize a discussion over independent items — lay out all threads at once each with a take, batch-answer, drop sorted ones, iterate until dry.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
assesswaves
Wave-Engineering
Quick assessment of whether a piece of work is suitable for wave-pattern execution (parallel or serial).
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
disc
Wave-Engineering
Discord integration — /disc routes to disc-server MCP tools, plus discord-watcher CLI subcommands for forward/directmsg/doorbell.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
dod
Wave-Engineering
Project Definition of Done verification against the Deliverables Manifest — verify every deliverable, run tests, check VRTM, produce pass/fail report
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
grunt
Wave-Engineering
Stand up a scoped-operations "grunt" — a dedicated aoe agent that clears a bounded service backlog so the main session's context stays clean for…
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
lazyriver
Wave-Engineering
Goal-seek loop — probe, judge sufficiency, steer, journal; emits a plan or answer
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
jfail
Wave-Engineering
Fetch and analyze a failed CI job (GitLab) or workflow run (GitHub)
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
engage
Wave-Engineering
Read CLAUDE.md, confirm development rules of engagement, and load current plan
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
ibm
Wave-Engineering
Verify Issue → Branch → PR/MR workflow compliance via MCP tool
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
autochain
Wave-Engineering
Plan a dependency-ordered chain of issues, then execute it autonomously on approval
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
name
Wave-Engineering
Report or pick the agent's session identity (Dev-Name, Dev-Avatar, Dev-Team)
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
ccfold
Wave-Engineering
Merge upstream CLAUDE.md template changes into the current project's CLAUDE.md, preserving project-specific content like Dev-Team and custom sections.
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 1
- Open issues
- 85
- Last commit (this folder)
- Apr 3, 2026 (7 months ago)
- Last release
- Oct 24, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Wave-Engineering
- 0.584score
grunt
Wave-Engineering
Stand up a scoped-operations "grunt" — a dedicated aoe agent that clears a bounded service backlog so the main session's context stays clean for…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
multithread
Wave-Engineering
Parallelize a discussion over independent items — lay out all threads at once each with a take, batch-answer, drop sorted ones, iterate until dry.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
assesswaves
Wave-Engineering
Quick assessment of whether a piece of work is suitable for wave-pattern execution (parallel or serial).
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
disc
Wave-Engineering
Discord integration — /disc routes to disc-server MCP tools, plus discord-watcher CLI subcommands for forward/directmsg/doorbell.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
dod
Wave-Engineering
Project Definition of Done verification against the Deliverables Manifest — verify every deliverable, run tests, check VRTM, produce pass/fail report
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
autochain
Wave-Engineering
Plan a dependency-ordered chain of issues, then execute it autonomously on approval
SkillAFreshness: A★ 1Claude Code +9
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 edit 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.
Cite this page
edit skill. Agent Mart. https://agentmart.dev/skills/wave-engineering-edit (last updated 2026-10-24)