Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Fedit

by amalexicoversion 1.12.0i★ –i–
Registry nameio.github.kehsiaocuba-ux/fedit

Install

Overview

Description from the maker (original English)

Go MCP server for surgical file edits: insert, replace, move, copy, dry-run, verified replaceall.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: –
  • Transport:
  • Category: Other

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 0 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • The registry lists no key to fill in.

The maker has not listed install details in the registry. See the maker’s README below.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026

  • ! Caution

    Maker matches the repo

    The publisher (kehsiaocuba-ux) is not the repo owner (amalexico); someone else may have listed it

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Otheri

  • More stars than 0% of the other 18477 servers in this category
  • Published to the registry more recently than 89% of the other 18477 servers in this category
  • Basic checks equal to or better than 20% of the other 18477 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Fedit safe?

It passed 0 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (1.12.0) reached the registry 5 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code.

What can I use instead?

In the same category: Spec Driven Development, Remote Desktop Commander, Readfirst

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Spec Driven Development

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

by formulahendryEarly↓ 66/wk★ 440Updated 14 months ago

Runs on your computer

Remote Desktop Commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

by desktop-commanderGrowing★ 211Updated 3 days ago

Runs in the cloud✓ desktopcommander.app

Readfirst

What to read and check before changing a file: project rules, risks, checks and tests per file.

by jeonghun917Growing↓ 5.3K/wkUpdated today

Runs on your computer

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

fedit — Fast File Editor for the Terminal

A zero-dependency CLI tool for surgical file edits from the command line. No interactive editors. No sed/awk gymnastics. Just simple, predictable operations with built-in verification.

Built for sysadmins, DevOps engineers, and anyone who scripts config changes.

go install github.com/amalexico/fedit@latest

Why fedit?

  • One binary, zero dependencies — pure Go, runs everywhere
  • 21 language mappers — see the structure of any file before editing
  • -v flag — verify every mutation before moving on
  • Line-aware — no regex surprises, no "which match did it hit?"
  • Stream engine — process multi-GB files line-by-line with atomic integrity
  • Field extraction — pull CSV/TSV column N without awk
  • Many files at once — a comma list or glob in -file, plus cross-file copy, move and replace with -dest (since v1.9.0)
  • Safe — no in-place unless you say so, never touches files you did not name

Install

Go install (recommended):

go install github.com/amalexico/fedit@latest

Or download the binary from GitHub Releases and put it in your PATH.

Verify:

fedit -file /etc/hostname -op show

Quick Start

# See what is in a file

fedit -file config.yaml -op show

See just lines 10-25

fedit -file config.yaml -op show -line 10 -end 25

Find every line containing "timeout"

fedit -file config.yaml -op find -match "timeout"

See the structure of a Go file

fedit -file main.go -op map -lang go

Replace line 42 with new content

fedit -file config.yaml -op replace -line 42 -end 42 -text "timeout: 60s" -v

Insert a line after every occurrence of "server {"

fedit -file nginx.conf -op insertafter -match "server {" -text " include security.conf;" -v

Move a function block before another (content-matched, atomic)

fedit -file main.go -op move -match "func OldHelper(" -end 45 -beforematch "func NewHelper(" -v

Copy a config block and paste it 3 times at a new location

fedit -file values.yaml -op copy -line 50 -end 65 -after 200 -times 3 -v

Extract column 2 from a TSV file (v1.4+)

fedit -file data.tsv -op fields -col 2

Write content with literal backslashes — no \n escape expansion (v1.6.0)

fedit -file config.txt -op writeraw -text "path=C:\\Users\\admin"

Hex-encode tricky text to sidestep shell quoting (v1.6.0)

fwencode produces the hex; fedit decodes it before writing

fedit -file config.txt -op write -texthex 706174683d2f746d70

Overwrite a file cleanly then insert new content (v1.6.0)

fedit -file config.txt -op insert -line 0 -cleanfirst -text "# regenerated"

Get bare line numbers for scripting (v1.6.0)

fedit -file main.go -op find -match "TODO" -x 2>$null

Regex replace on a multi-GB log without loading it into memory (v1.4+)

fedit -file huge.log -op replaceall -match 'ERROR' -text 'WARN' -stream


All Operations

show — Display file contents
# Entire file

fedit -file app.conf -op show

Lines 50-75 only

fedit -file app.conf -op show -line 50 -end 75

Last 10 lines

fedit -file app.conf -op show -line -10:

Lines 50 to 5th from end

fedit -file app.conf -op show -line 50 -end -5

Lines 100-103 (relative range)

fedit -file app.conf -op show -line 100:+3

Show from one anchor to another (no line numbers needed)

fedit -file config.go -op show -match "func Start" -endmatch "func End"


find — Search for lines matching a substring
# Find all lines containing "ERROR"

fedit -file /var/log/app.log -op find -match "ERROR"

Output includes context lines and occurrence numbers

Use -nth to target a specific match in other operations

Pro tip: Run find first to get line numbers, then use replace or delete with exact lines.


insert — Insert content after a line number
# Insert a comment after line 1

fedit -file script.sh -op insert -line 1 -text "# Added by deploy script" -v

Insert multiple lines from a file

fedit -file config.yaml -op insert -line 10 -textfile extra-config.yaml -v


insertafter — Insert after a matching line (RECOMMENDED)
# Add a firewall rule after the matching comment

fedit -file iptables.rules -op insertafter -match "# Custom rules" -text "-A INPUT -p tcp --dport 8080 -j ACCEPT" -v

Target the 2nd occurrence

fedit -file nginx.conf -op insertafter -match "server {" -nth 2 -text " listen 8443 ssl;" -v

Target the last occurrence

fedit -file docker-compose.yml -op insertafter -match "volumes:" -nth -1 -text " - /data:/data" -v


insertbefore — Insert before a matching line (RECOMMENDED)
# Add a header before the first route definition

fedit -file routes.rb -op insertbefore -match "get '/'" -text " # === Public Routes ===" -v

Insert a dependency before the closing bracket

fedit -file package.json -op insertbefore -match "}" -nth -1 -textfile new-deps.txt -v


replace — Replace a line range with new content
# Replace a single line

fedit -file config.ini -op replace -line 15 -end 15 -text "max_connections = 200" -v

Replace the one line that contains a text (no end bound needed; after v1.12.0)

fedit -file config.ini -op replace -match "max_connections" -text "max_connections = 200" -v

Replace from a matched line through line 35 (-match with -end; after v1.12.0)

fedit -file server.conf -op replace -match "[cache]" -end 35 -textfile patched-block.txt -v

Replace lines 30-35 with content from a patch file

fedit -file server.conf -op replace -line 30 -end 35 -textfile patched-block.txt -v

Replace a section by content anchors (no line numbers needed)

fedit -file CHANGELOG.md -op replace -match "## v1.6" -endmatch "## v1.5" -textfile new-section.txt -v


replaceall — Global find-and-replace
# Change all occurrences of old domain to new

fedit -file nginx.conf -op replaceall -match "old.example.com" -text "new.example.com" -v

Update a version string everywhere

fedit -file Makefile -op replaceall -match "1.1.0" -text "1.2.0" -v

  • Every replaceall is verified by default: after the write, fedit re-reads the file from disk and prints VERIFY: PASS or VERIFY: FAIL followed by the changed lines. This covers a single file, -match-regex, -stream, -files and a file list in -file, and fedit_replaceall over MCP. -v adds a context window for every match (not printed with -stream).
  • Exit codes for replaceall: 0 ok, 1 the edit did not happen, 3 the file was written but verification failed or could not be done. With several files, one FAIL file makes the exit code 3 even when the others succeeded, and the MCP result is an error.
  • -files GLOB prints the same per-file report as a file list in -file: one OK, SKIP or FAIL line per file, then multi -file replaceall: N/M file(s) succeeded. An OK line reads OK PATH replaced on N line(s); VERIFY: PASS, a file without the text is a SKIP (No lines contain: TEXT) and is never modified. Exit code 0 if at least one file succeeded and none failed (SKIP files do not change that), 1 if none succeeded, 3 if any file is FAIL.

fields -- Extract a column from delimited files (v1.4.0)
# Extract column 2 from a tab-separated file (default delimiter: tab)

fedit -file data.tsv -op fields -col 2

Extract the third field from a CSV

fedit -file report.csv -op fields -col 3 -delim ","

Extract usernames from /etc/passwd (colon-delimited)

fedit -file /etc/passwd -op fields -col 1 -delim ":"

Output goes to stdout for piping. Lines shorter than -col are skipped silently. Always streaming -- no memory limit regardless of file size.

-stream -- Large-file streaming mode (v1.4.0)

Add -stream to replaceall or find to process files line-by-line without loading them into memory. 10 MB per-line buffer handles JSON blobs and minified files. Atomic integrity: writes to a temp file then renames -- original is untouched on interruption.

# Replace a pattern in a multi-GB log file

fedit -file server.log -op replaceall -match "10.0.0.1" -text "10.0.0.2" -stream

Regex replace in a huge file with capture groups

fedit -file big.csv -op replaceall -match-regex 'id_(\d+)' -text 'ID_$1' -stream

Streaming find -- grep-style output to stdout

fedit -file huge.log -op find -match "FATAL" -stream

Supported with -stream: replaceall (literal and regex), find. Not supported: move, copy, map (these require full file structure in memory).

writeraw — Write without escape expansion
# Write a Windows path without double-escaping backslashes

fedit -file config.ini -op writeraw -text "basedir=C:\\Program Files\\App"

Write content from a file as-is

fedit -file output.txt -op writeraw -textfile template.txt

Unlike write, writeraw treats \n as two characters (backslash + n), not a newline.


writelines — Write lines interactively from stdin
fedit -file notes.txt -op writelines

Type lines at the > prompt, Ctrl+Z (Windows) or Ctrl+D (Unix) to finish


-texthex — Hex-encoded input (v1.6.0)

Encode text to hex first (e.g. with fwencode), then pass the hex string as -text. Eliminates all shell-quoting issues with special characters.

# Decode hex string and write — no quoting gymnastics needed

fedit -file deploy.sh -op write -texthex 23212f62696e2f62617368


-matchhex / -endmatchhex — Hex-encoded anchors (v1.8.1)

Same idea as -texthex, but for the search anchors. PowerShell mangles a double quote inside -match before fedit sees it, so case "replace": silently becomes case replace: and matches nothing. Pass the anchor as hex instead; fedit decodes it into -match (or -endmatch) once, so every op that takes an anchor works unchanged.

# Find a line containing double quotes (hex of: case "replace":)

fedit -file main.go -op find -matchhex 6361736520227265706c616365223a

Invalid hex exits 1 with matchhex: invalid hex string: ... (or endmatchhex: ...).


Multiple files -- comma list or glob (show/find/map since v1.8.1, mutation and MCP since v1.9.0, -sourcefile and -sourceblock with a list since v1.11.0)

-file accepts a comma-separated list, a glob, or both. A real file with that exact name wins over glob expansion.

Read-only ops (show, find, map) print a ==> path <== header per file:

# Find TODO in every Go file in the current folder

fedit -file '*.go' -op find -match 'TODO'

Map two files at once

fedit -file main.go,mcp.go -op map -lang go

  • find skips files with no hits (grep-style) and exits 1 only if nothing matched in any file.
  • map skips unrecognized extensions with a SKIP line.
  • A summary line reports how many files had results.

Mutating ops (replaceall, insertafter, insertbefore, delete, replace, write) run on each file on its own:

# Replace in every matching file

fedit -file '*.conf' -op replaceall -match 'old.example.com' -text 'new.example.com'

Insert after the first match in each file

fedit -file a.yaml,b.yaml -op insertafter -match 'servers:' -text ' - new'

Delete from a start line through an end line in each file (-endmatch is inclusive)

fedit -file '*.md' -op delete -match ' ' -endmatch ' '

  • A problem in one file (no match, unreadable, read-only, write failed) is reported as SKIP and never stops the batch. A skipped file is never modified.
  • The report lists OK, SKIP or FAIL per file, then N/M file(s) succeeded. A FAIL is a replaceall file that was written but did not pass the on-disk verification. Exit code 0 if at least one file succeeded and none failed, 1 if none succeed

Only the beginning is shown; read the rest in the repo

Ask PopNx