a13n
Build AI agents and run them on cloud.
Dialect: Translates network device configs between vendor dialects, offline. Dialect translates network device configs between vendor “dialects”, offline: Junos, Cisco IOS / IOS-XE, NX-OS and IOS-XR.
Translation pending
Developer toolsTypeScript · JavaScriptGitHub @SuremiseOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Translates network device configs between vendor dialects, offline: Junos display set, and Junos, Cisco IOS/IOS-XE, NX-OS and IOS-XR conversion. Desktop app, offline web page and CLI. Not affiliated with Juniper or Cisco.
Taken from the repository README
Loading the full README.
Read the full README ↗Dialect translates network device configs between vendor "dialects", offline. It turns hierarchical Junos config into
display set commands, and converts configs between Junos, Cisco IOS / IOS-XE, NX-OS and IOS-XR: interfaces and
VLANs, static routes, OSPF and BGP, routing policy and filters, with each platform built as its own plugin. What it
can't convert is listed, never dropped silently. It comes as a desktop app for Windows, an offline single-file web page
and a command-line tool, all from one TypeScript core, and nothing ever leaves your computer.
Always review converted configuration before applying it to a device. Dialect reports what it couldn't convert, but you are responsible for what you deploy.
Download Dialect from Releases (in the app: Help → Releases on GitHub). Each release has four downloads, for Windows (x64). None needs anything else installed: no Node.js, no runtime.
| Download | What it is |
|---|---|
Dialect_<version>_x64-setup.exe | The one most people want. The desktop app and the dialect command, for you alone (no admin rights). It needs internet only on the rare PC without Microsoft WebView2 (every Windows 11 and an up-to-date Windows 10 have it). |
Dialect_<version>_x64-offline-setup.exe | The same, for a PC with no internet: Microsoft's WebView2 installer is inside, so it's much bigger. |
dialect-cli.exe | The dialect command on its own: one file, nothing to install. Rename it dialect.exe to type dialect. |
dialect.html | The app as one web page: open it in Edge or Chrome, from any folder or a USB stick, with no network. |
Use it online: suremise.github.io/dialect is the latest release's dialect.html, to use in a browser with nothing
to download. It runs entirely in your browser: its content security policy blocks every network connection, so your
configuration is never uploaded.
Until Dialect has a code-signing certificate, Windows SmartScreen may warn about the downloads: choose More info →
Run anyway. THIRD_PARTY_NOTICES.md comes with each release, and the release notes give each download's SHA-256.
Dialect doesn't update itself or check for new versions yet: look at Releases for them. The
user guide (also in the app, F1) says how to use it.
Needs Node 24.22.1 or newer and npm 12. The repo pins npm 12.2.0, whose install scripts are denied by default, but a
global npm may be older (npm 11, say). Run npm 12 through npx for installs and tests instead:
npx [email protected] install # or ci
npm run typecheck
npm run lint
npx [email protected] test
Under npm 11, npm test skips the npm 12 install-script checks with a warning; CI runs them, on npm 12.
The desktop app and the license check (which lists its Rust crates) also need Rust, through
rustup, and the Visual Studio C++ build tools. npm run build -w @dialect/desktop makes the
installer, and npm run build:installers -w @dialect/desktop both (normal and offline); npm run test:smoke -w @dialect/desktop runs its smoke test (docs/ARCHITECTURE.md, The desktop app). npm run build:exe -w @dialect/cli
makes the standalone dialect.exe (with the Node version scripts/notices/node.md is for).
MIT, see LICENSE. Third-party material that ships is listed in THIRD_PARTY_NOTICES.md and the tools used only to build in docs/BUILD_ONLY_PACKAGES.md, both generated by npm run licenses.
© 2026 Darren Marshall. Dialect is independently developed and isn't affiliated with, endorsed or sponsored by Juniper Networks or Cisco Systems. Juniper and Junos are trademarks of Juniper Networks, Inc.; Cisco, IOS, IOS-XE, NX-OS and IOS-XR are trademarks of Cisco Systems, Inc.
Licenses come in two categories (docs/SPEC.md §3):
npm run licenses regenerates the notices and checks the rule; commit what it writes. Material that isn't a package gets a hand-written entry in scripts/notices (Apache-2.0 also needs its NOTICE text).
Sample configs and test fixtures must be cleaned up first. Before committing one, remove passwords and password hashes, SNMP communities, keys, real public IP addresses, hostnames and customer names. Use documentation ranges instead: 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24 and 2001:db8::/32. The one exception is unchanged published test data in fixtures/public/, kept byte-for-byte with its provenance, license and scan flags in fixtures/manifest.json (see fixtures/README.md); everything else, fixtures/private-cleaned/ included, must be cleaned first.