uncomment plugin

Plugin that teaches an agent to strip source comments by syntax tree and lint TODO tags for a real issue key.

  • 141 ★ on the repository
  • Last commit
  • MIT
Plugin

Extended access

Why this level

  • A plain run deletes comments from project files, so use `--dry-run` first and a git branch.
All reasons and checks

goldziher/uncomment

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add plugins/uncomment

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • A plain run deletes comments from project files, so use `--dry-run` first and a git branch.

This is third-party code. Review the repository files before installing.

What it does

The uncomment plugin teaches an agent to drive the `uncomment` CLI. It finds comments through the tree-sitter syntax tree, so comment-like text inside strings stays untouched. `uncomment scan` builds an inventory of comments, `uncomment keep` writes a `~keep` marker on those that must stay, and `uncomment lint` checks `TODO`, `FIXME`, `HACK` and `XXX` tags for an issue key. Before removing anything the agent previews the plan with `--dry-run --diff`. The `--check` mode exits non-zero when a comment would be removed, so it can gate a commit or pull request without writing files. The CLI is installed separately: the plugin carries instructions and has no MCP server.

Who it is for. Developers who want to strip noisy explanations after an agent generates code while keeping working markers.

Good fit when

  • An agent commented every line, yet `TODO` markers and docs must stay.
  • A repository has `TODO` tags without issue numbers and you need a list.
  • A branch must fail review while changed lines still hold removable comments.
  • The project uses a rare language: tree-sitter covers 306 grammars.

Not a fit when

  • Comments are picked by hand by meaning: the tool follows preservation rules, not a usefulness judgment.
  • You need dead-code removal or minification: `uncomment` only touches comments.
  • The CLI is not installed and cannot be: the plugin carries instructions only.

Example request

Show which comments in `src/` would be removed without writing anything, and keep those explaining workarounds.

Limitations

The plugin does not bundle the CLI: install `uncomment` separately, the skill targets version 3.10 and newer. A plain `uncomment src/` run writes changes to files, so preview with `--dry-run` first and work on a git branch. By default `TODO`, `FIXME`, documentation and linter directives are preserved; doc comments and docstrings go only with `--remove-doc`. Marketplace commands are documented for Claude Code and Codex; for other agents see `plugin/README.md` in the repository.

How to disable. Remove the plugin with your agent tooling and uninstall the CLI with the package manager you used. `~keep` markers stay in code as ordinary comments.

FAQ

Why is uncomment safer than regular expressions?

It parses code into a syntax tree and removes comment nodes only. A `//` inside a string and a URL inside a docstring stay in place.

What stays after a default run?

`TODO`, `FIXME`, documentation and linter directives. Docstrings and doc comments go only with the `--remove-doc` flag.

How do I keep one specific comment?

Add the `~keep` marker to it or ask the agent to run `uncomment keep` with an ID from `uncomment scan`.

How do I add the plugin in Codex?

Run `codex plugin marketplace add Goldziher/uncomment`, then `codex plugin add uncomment@uncomment`.

Does the plugin ship an MCP server?

No. It carries skill instructions only; the CLI does the work.

Discussion

No questions or reviews yet.

Plugins

A plugin makes the agent explain its code and, before a push, ask questions so you understand what you are merging.

PluginExtended access65Repository stars

A code-review CLI and plugin for agents: reads a git diff and writes line-level comments with context

CLIExtended access50.1KRepository stars

Skills for commits, review and ZenTao plus a status line, gateway balance and session logs for Claude Code, Codex, OpenCode.

PluginExtended access179Repository stars

Crit opens a coding agent's plans, diffs and running apps in a browser: click a line, leave a comment and the agent receives it

CLIExtended access1.3KRepository stars

A plugin that readies a project for Claude Code: guidance, tests, review, TDD, refactoring and a resumable fix loop

PluginBroad access75Repository stars

Local review of agent changes before commit: the agent itself reads line comments and replies to them through MCP.

PluginMinimal access127Repository stars

README in short

The tool installs through Homebrew, Cargo, npm or pip, or runs without installation via `uvx uncomment .`. Settings live in a hierarchical TOML file created by `uncomment init`. CI checks use git hooks and a GitHub Action.

README badge

Original SKILL.md

---
description: Inventory, preserve, lint and remove source comments using Uncomment's tree-sitter CLI or Rust library. Use for comment cleanup and preservation policies without changing comment-like text in strings.
name: uncomment
license: MIT
metadata:
    author: Goldziher
    repository: https://github.com/Goldziher/uncomment
---

<!--
AI-RULEZ :: GENERATED FILE — DO NOT EDIT
Content-Hash: blake3:0c7de78d48b93b3fbba0488c23059fea8b4e0ff49f7c1de07c8c7bbf8a3c24fa
Source-Hash: blake3:632626448c20c35e5a1201704fa17dabcd59ec395a3e338c62ac5d02b619d20c
Schema-Version: v1
-->

## Uncomment Source Comment Cleanup

Uncomment uses tree-sitter to find source comments. This skill targets Uncomment
3.10 and newer, including `scan`, `keep`, `lint` and the `--check` gate. Install the
CLI separately; this plugin provides instructions and has no MCP server.

```bash
cargo install uncomment --version '^3.10'
# Binary wrappers are available as uncomment-cli on npm and uncomment on PyPI.
uncomment --version
```

### Inspect and preview

Start with the paths the user selected. An ordinary removal invocation writes
files; `scan`, `--dry-run`, and `--check` let you inspect the planned cleanup.

```bash
uncomment scan src/ --only removable --format jsonl --output comments.jsonl
uncomment src/ --dry-run --diff
```

Scan records contain `id`, `path`, `line`, `end_line`, `start_byte`, `end_byte`,
`kind`, `verdict` and `text`. Preserved records also include `reason`. Positions are
one-based lines and zero-based byte offsets. Use IDs to select comments; IDs survive
edits above a comment but depend on its path, exact text and occurrence index.

### Preserve selected comments

Report a problem