NetConverter CLI
Migrate, validate and optimize network configurations from the folder that holds them — and let your own AI assistant do it too, without the configuration ever passing through the model.
NetConverter — by ValeronLabs LLC.
◆ NetConverter v0.7.0 ● Server ◆ Bridge claude-code · 2m ago
▍ Start
▍ /convert Migrate a configuration to another vendor
▍ /validate Check a configuration before migrating
▍ /optimize Cleanup and optimization findings
▍ /activity What your AI assistant did here
╭ What does edge-fw.conf contain? ───────────────────────────────╮
│ ▸ 1 Fortinet FortiGate · detected │
│ 2 Cisco ASA │
╰──────────────────────────────── ↑↓ choose · 1–9 jump · Enter ───╯
One small client, three ways in:
| What it is | |
|---|---|
netconverter |
A keyboard-first full-screen app: pick a file, answer a few inline questions, follow the job, get verified outputs beside your source. |
netconverter mcp |
A local MCP bridge for Claude Code, Claude Desktop, Cursor, VS Code and Codex. Your AI passes a file path; the bridge reads the file and uploads it straight to NetConverter. The AI sees paths, job IDs and summaries — never the configuration. |
netconverter validate edge.cfg --vendor fortinet |
Plain one-shot commands that print JSON, for scripts and CI. |
What it supports
Whatever the NetConverter server you sign in to supports — the client reads
GET /capabilities and builds every menu from it, so new vendors appear
without a client update. Today that is:
- Firewalls: Palo Alto (SET, XML, Panorama), Fortinet FortiGate, Cisco FMC (JSON); Cisco ASA as a source. Check Point is a source through a handoff bundle in the portal.
- Routers and switches: Cisco IOS-XE, Juniper JunOS (braces and set), Aruba CX; ArubaOS as a source.
- Jobs: convert, validate, optimize; follow-up questions on NAT, policy, routes, interfaces, unused objects, object dependencies and traffic flows.
Run netconverter capabilities to see exactly what your credential can do.
A 0.1.x Terminal Quick pilot key still works and keeps its ASA → Palo Alto
scope; the app labels it as such.
Development preview: revisioned drafts and guided MCP adds an opt-in client contract for manual YAML, reviewed migration preparation, job status and verified result downloads. It requires explicit server support and is not enabled by an ordinary MCP connection.
Start here
One line installs everything (uv, the CLI from PyPI), signs you in and connects
your AI assistants to ~/migrations:
curl -LsSf https://netconverter.ai/install.sh | sh # macOS / Linux
irm https://netconverter.ai/install.ps1 | iex # Windows PowerShell
Options: --yes (no prompts, for IT/MDM), --no-connect, --workspace PATH
(curl … | sh -s -- --yes; PowerShell: -Yes -NoConnect -Workspace PATH, see
scripts/install.ps1). Running it again only does what is missing.
Or by hand:
# 1. Install (Python 3.12+ via uv: https://docs.astral.sh/uv)
uv tool install --python 3.12 netconverter-cli
# 2. Sign in once
netconverter login --clerk # your NetConverter account, in the browser
# or: netconverter login # paste an API key at a hidden prompt
# 3. Work in the folder that holds your configs
cd ~/migrations && netconverter
Upgrading from netconverter-terminal 0.1.x: uv tool uninstall netconverter-terminal
first. Saved keys and sign-ins carry over (Keychain service NetConverter Terminal).
Full walkthrough: Quick start.
A YAML v2 decisions file (zone and interface mappings) rides along with a conversion:
netconverter convert edge.cfg --vendor fortinet --to palo_alto_xml --options "$(jq -Rs '{yaml_v2: .}' decisions.yaml)",
or inline as --options '{"yaml_v2": {...}}'; see docs/COMMANDS.md.
Use it from your AI
Step-by-step guides for every assistant (Claude, ChatGPT, Cursor, Gemini CLI, Codex …): docs/connect.
netconverter connect claude-code # or claude-desktop, cursor, vscode, codex, gemini, devin, windsurf, lmstudio
netconverter connect --all # every assistant found on this computer
netconverter connect chatgpt # ChatGPT / claude.ai: remote-connector setup steps
connect shows the exact change it will make and asks before applying it
(Claude Code through its own claude mcp add; JSON files keep a .bak). For
Claude Code it then offers a Read deny rule for the folder, so the assistant
works on your configurations only through the bridge.
Then ask your assistant, for example: "Validate edge-fw.conf and tell me what it finds,"
"Convert it to Palo Alto XML," "Can WEB reach DB on tcp/1433?"
Guided migration: "Prescan edge-fw.conf for Palo Alto XML and walk me through the decisions."
submit_file(..., job_type="prescan") stops at a psc_ prescan; the assistant reads the decisions
(list_operations, get_decision_document, validate_decision_document), records your choices
(propose_operations) and, with your OK, queues the conversion (submit_conversion). These tools
need the folder at netconverter privacy level full; the two write tools also need them enabled
for your tenant (docs/COMMANDS.md § Guided migration). If your assistant declines the upload
confirmation without showing it (ChatGPT, Claude Code), approve in the conversation or run the
bridge with --no-upload-confirm.
Bridge tools: submit_file, job_status, wait_for_job, account, download,
plus an allowlist of NetConverter's tools (reports, evidence, NAT, flows, knowledge base,
guided mapping and guided migration). What the assistant sees is this folder's exposure level
(netconverter privacy level none|masked|selected|full, default masked: the strict view,
names as tokens, addresses masked, no configuration content); secrets are removed at every
level, and raising the level needs a confirmation typed in a terminal (docs/PRIVACY.md).
netconverter privacy apply --client claude-code (also cursor, gemini; codex and openclaw
print the settings) keeps the assistant's own file tools out of the folder. Job options from an assistant pass an
allowlist with type checks: an unknown or reserved key (the file, vendors, job type, a
decisions document) is refused naming it, never silently sent.
Upgrading from 0.4.x: --full (or NETCONVERTER_MCP_VIEW=full) no longer widens the
view on its own; run netconverter privacy level full in a terminal for the folder. Run
netconverter connect <assistant> again to drop the --strict that 0.4.4 wrote, which would
hold the assistant at masked.
Inside the app, /activity and the header's Bridge pill show what your AI did
through the bridge — paths, sizes, SHA-256 and job IDs only.
Stay current
netconverter update upgrades a PyPI install with uv tool upgrade netconverter-cli;
a copy installed from a release wheel gets the latest wheel after its SHA-256 is
checked (--check only reports). Interactive commands mention a new release at most once
a day; set NETCONVERTER_NO_UPDATE_CHECK=1 to turn that off.
Boundaries
- Configurations travel only from your workspace to NetConverter, over HTTPS. The bridge never returns configuration text to the AI; the server tokenizes addresses and removes credentials from every summary.
- The client never pushes to a device. Outputs are files you review and load.
- Downloads are hash-verified and never overwrite a file you changed.
- An optional in-app model (
/model: Anthropic, OpenAI, Gemini or local Ollama) only chooses among fixed operations; it never receives configurations or results.
Documentation
- Quick start · Commands and troubleshooting
- Privacy and data flow · Verification status
- Changelog · Contributing · Security
The client is licensed for use with your NetConverter account only and may not be
redistributed (license); you accept it on first run (netconverter license).
Versions up to 0.4.3 were MIT licensed. The license does not grant access to the
hosted service or license the server code. macOS is the exercised platform;
Windows acceptance remains pending.
Metadata
Release files for netconverter-cli 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| netconverter_cli-0.7.0.tar.gz | 322.0 kB | With provenance | Details for netconverter_cli-0.7.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| netconverter_cli-0.7.0-py3-none-any.whl | Python 3 | none | any | Details for netconverter_cli-0.7.0-py3-none-any.whl |
Total release size: 513.6 kB
Release files / netconverter_cli-0.7.0.tar.gz
| Download URL | netconverter_cli-0.7.0.tar.gz |
|---|---|
| Size | 322.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f19ad12d6f8a8fdb162e93aaf025de2e29d312e5013ed1f3a8199c2f2225b237
|
|
BLAKE2b-256 checksum How to use checksums |
858c6354922a6cae5ea6a281c68527e93d6cd3d1cd00a5766073f54296765ca2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.
Transparency logRelease files / netconverter_cli-0.7.0-py3-none-any.whl
| Download URL | netconverter_cli-0.7.0-py3-none-any.whl |
|---|---|
| Size | 191.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
657402499d209c6b3923b5cf6d2287d7d184a9219a65fc9a2dc8946907722d3e
|
|
BLAKE2b-256 checksum How to use checksums |
0c89ab2f321eae62163b7135bcf1232d69f532a42719fc03bcc2b9fc4ae28aa4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.
Transparency logSecurity for netconverter-cli 0.7.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for netconverter_cli-0.7.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.