SkillOps is a Visual Studio Code extension that creates repository-scoped skills for Codex, Claude Code, and Gemini CLI.
It generates platform-specific skill directories, keeps SKILL.md focused, and writes supporting references, scripts, and assets. Codex, Claude, and Gemini runs can also be reviewed with local run insights, previous Codex and Claude sessions can be resumed from the editor, and skills can be copied between platforms.
SkillOps works locally and does not upload project files, prompts, session logs, credentials, token usage, workspace metadata, or analytics.
SkillOps also reports Codex sessions that did not invoke a skill. These appear under No skill, while the Session dropdown provides the timestamped history for each separate session.
- Visual Studio Marketplace
- Install SkillOps, review release details, and receive updates through Visual Studio Code.
- Product requirements
- Defines the user workflow, generated skill structure, and out-of-scope product behavior.
- Architecture
- Documents the boundaries between VS Code integration, skill generation, insights, and webview presentation.
- Development and release runbook
- Describes local verification, packaging, clean-profile testing, and release preparation.
Install SkillOps from the Visual Studio Marketplace, or install it directly in Visual Studio Code:
Visual Studio Code
→ Extensions
→ Search for "SkillOps"
→ Select SkillOps by spmisha134
→ Install
You can also install the extension from the command line:
code --install-extension spmisha134.skillopsVisual Studio Code automatically offers updates for Marketplace installations.
Create a skill from the SkillOps Activity Bar view:
SkillOps
→ Codex, Claude, or Gemini
→ Create Skill
The extension creates the selected platform's project skill directory (.agents/skills/ for Codex, .claude/skills/ for Claude, or .gemini/skills/ for Gemini). A Codex skill contains:
.agents/
skills/
<skill-name>/
SKILL.md
references/
instructions.md
validation.md
examples.md
scripts/
assets/
agents/
openai.yaml
Review token usage and efficiency after a run:
SkillOps
→ Codex, Claude, or Gemini
→ Show Run Insights
The same platform-grouped actions are available from the Explorer context menu:
All actions are also available from the Command Palette.
Run Insights scans recent local sessions for the selected platform and shows the token categories and structured activity exposed by that platform. Claude insights deduplicate assistant calls and merge subagent transcripts. Gemini insights use .project_root mappings and structured activate_skill calls. Skill runs are grouped by skill name; ordinary project sessions remain available under No skill, with separate timestamped history entries.
Run Insights reads Codex, Claude, and Gemini session files without modifying them. Configure non-default homes with skillops.insights.codexHome, skillops.insights.claudeHome, and skillops.insights.geminiHome.
Pick up a previous Codex or Claude conversation without hunting for its session ID:
SkillOps
→ Codex or Claude
→ Resume Session
SkillOps lists the sessions recorded for the current workspace, most recent first. Each entry shows the task summary taken from the first user message, the skills invoked during the run, the last-modified time, the working directory, the short session ID, and — for Codex — total token usage. Search filters the list by task text, skill name, session ID, or working directory.
Selecting a session opens a new terminal in the session's recorded working directory and runs the resume command for that platform:
codex resume <session-id> # Codex
claude --resume <session-id> # ClaudeIf the recorded directory no longer exists, the workspace root is used instead. A session ID can also be copied to the clipboard rather than launched.
Claude adds three quick actions that do not target a listed session:
- Continue —
claude --continueresumes the most recent session in the working directory. - Session picker —
claude --resumeopens Claude's own interactive picker. - Named session —
claude -n "<name>"starts a new named session.
Sessions belonging to other projects, and Codex sessions without a resumable session ID, are ignored and reported as warnings. Session files are read only; the same skillops.insights.codexHome and skillops.insights.claudeHome settings locate non-default homes.
Move an existing skill from one platform to another without rewriting it by hand:
SkillOps
→ Copy Skills
Choose a source platform and a target platform, select one or more skills from the source skills directory, and copy. Copying is fully deterministic and local: no network call, model, or semantic interpretation is involved.
The conversion:
- rewrites
SKILL.mdfront matter and the SkillOps-generated skill-root reference (for example.agents/skills/<name>→.claude/skills/<name>) while leaving user-authored prose untouched, - writes
agents/openai.yamlwhen the target is Codex, and drops the Codex-only agent metadata when it is not, - preserves
references/,scripts/, andassets/contents, directory structure, and executable file permissions.
Source skills are validated before anything is written. A skill is rejected when SKILL.md is missing, has no YAML front matter, or omits name or description; when the folder name is not normalized; when the directory or any entry is a symbolic link; or when Codex metadata is missing or invalid. Invalid skills are shown with the reason and cannot be selected.
When a skill of the same name already exists in the target, the conflict policy decides what happens: ask (prompt per conflict), replace, rename (write <name>-2, <name>-3, … instead), or skip. Writes are staged in a temporary directory and swapped into place, with the previous directory kept as a backup until the swap succeeds, so a failed copy does not leave a partial skill behind. All paths must stay inside the workspace folder. A per-skill summary reports what was copied, replaced, renamed, skipped, or failed.
Use GitHub Issues for bugs, workflow problems, and feature requests.
When reporting a problem, include:
- Visual Studio Code version
- SkillOps version
- operating system
- steps to reproduce
- expected and actual behavior
See CONTRIBUTING.md for the development workflow and pull-request checklist. Before contributing, read:
Keep pull requests focused. Include what changed, why it changed, and how it was verified.
npm ci
npm run bundle
npm run packageThe packaged artifact is created as skillops-<version>.vsix in the repository root.
Run the complete local check:
npm run checkRun individual checks with:
npm run format:check
npm run lint
npm run typecheck
npm test
npm run test:webview- Run
npm ci. - Open this repository in Visual Studio Code 1.96 or newer.
- Run
npm run bundle. - Start the Run SkillOps Extension launch configuration.
- Verify SkillOps in a disposable workspace.
Before publishing a new version, install the packaged VSIX in a clean Visual Studio Code profile and verify:
SkillOps → Codex → Create Skill
SkillOps → Claude → Create Skill
SkillOps → Claude → Show Run Insights
SkillOps → Gemini → Create Skill
SkillOps → Gemini → Show Run Insights
SkillOps → Codex → Show Run Insights
SkillOps → Codex → Resume Session
SkillOps → Claude → Resume Session
SkillOps → Copy Skills
Also verify the Command Palette and Explorer context-menu entries, generated skill contents, duplicate handling, Run Insights states, session listing and terminal launch, skill copy conflict policies, supported themes, resizing, and keyboard navigation.
SkillOps is published on the Visual Studio Marketplace with the extension identifier spmisha134.skillops.
Release preparation and clean-profile verification steps are maintained in the development and release runbook.
Licensed under the Apache License, Version 2.0.

