Skip to main content

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

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)

Source distribution for netconverter-cli 0.7.0
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)

Table of built distributions (wheels) for netconverter-cli 0.7.0
File Interpreter ABI Platform Actions
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 log

Release 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 log

Security 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.

Select from 2 files

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 log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page