{
"version": "0.37.0",
"generated_from": "scripts/gen_channels.py (one table), checked against the README install table and scripts/check_channel_parity.py",
"fields": [
"id",
"group",
"name",
"audience",
"requires",
"command",
"pinned",
"verify",
"registry",
"registry_label",
"docs",
"docs_label",
"note",
"links",
"registry_name",
"parity",
"optional",
"pending"
],
"channels": [
{
"id": "browser",
"group": "engine",
"name": "Try in the browser",
"audience": "anyone, nothing to install",
"requires": "none",
"command": null,
"pinned": null,
"verify": null,
"registry": "https://kshana.dev",
"registry_label": "Open Kshana Studio",
"docs": "docs/studio.html",
"docs_label": "Studio guide",
"note": "The engine runs locally as WebAssembly; nothing is uploaded.",
"links": [],
"registry_name": null,
"parity": null,
"optional": false,
"pending": false
},
{
"id": "cli",
"group": "engine",
"name": "Command line (Rust)",
"audience": "engineers who want the kshana command",
"requires": "Rust",
"command": "cargo install kshana",
"pinned": "cargo install kshana --version 0.37.0",
"verify": "kshana --version",
"registry": "https://crates.io/crates/kshana",
"registry_label": "crates.io: kshana",
"docs": "docs/rust.html#usage--cli",
"docs_label": "Command-line usage",
"note": null,
"links": [],
"registry_name": null,
"parity": "crates.io kshana",
"optional": false,
"pending": false
},
{
"id": "rust",
"group": "engine",
"name": "Rust library",
"audience": "Rust developers embedding the engine",
"requires": "Rust",
"command": "cargo add kshana",
"pinned": "cargo add kshana@0.37.0",
"verify": "cargo tree --depth 1 | grep kshana",
"registry": "https://crates.io/crates/kshana",
"registry_label": "crates.io: kshana",
"docs": "https://docs.rs/kshana",
"docs_label": "API reference on docs.rs",
"note": null,
"links": [],
"registry_name": null,
"parity": "crates.io kshana",
"optional": false,
"pending": false
},
{
"id": "python",
"group": "engine",
"name": "Python",
"audience": "analysts and notebooks",
"requires": "Python",
"command": "pip install kshana",
"pinned": "pip install kshana==0.37.0",
"verify": "python -c \"import kshana; print(kshana.version())\"",
"registry": "https://pypi.org/project/kshana/",
"registry_label": "PyPI: kshana",
"docs": "docs/python-api.html",
"docs_label": "Python API guide",
"note": null,
"links": [],
"registry_name": null,
"parity": "PyPI kshana",
"optional": false,
"pending": false
},
{
"id": "npm",
"group": "engine",
"name": "JavaScript and WebAssembly",
"audience": "web and Node.js developers",
"requires": "Node",
"command": "npm install kshana",
"pinned": "npm install kshana@0.37.0",
"verify": "npm ls kshana",
"registry": "https://www.npmjs.com/package/kshana",
"registry_label": "npm: kshana",
"docs": "docs/npm.html",
"docs_label": "npm and WebAssembly guide",
"note": null,
"links": [],
"registry_name": null,
"parity": "npm kshana",
"optional": false,
"pending": false
},
{
"id": "mcp",
"group": "mcp",
"name": "AI assistant (MCP server, cargo)",
"audience": "anyone using an MCP-capable assistant",
"requires": "Rust 1.88+",
"command": "cargo install kshana-mcp",
"pinned": "cargo install kshana-mcp --version 0.37.0",
"verify": "cargo install --list | grep kshana-mcp",
"registry": "https://crates.io/crates/kshana-mcp",
"registry_label": "crates.io: kshana-mcp",
"docs": "docs/mcp.html",
"docs_label": "MCP server guide",
"note": null,
"links": [],
"registry_name": "io.github.ashfordeOU/kshana-mcp",
"parity": "crates.io kshana-mcp",
"optional": false,
"pending": false
},
{
"id": "docker",
"group": "mcp",
"name": "Docker image",
"audience": "no Rust toolchain; the MCP server in a container",
"requires": "Docker",
"command": "docker run --rm -i ghcr.io/ashfordeou/kshana-mcp",
"pinned": "docker run --rm -i ghcr.io/ashfordeou/kshana-mcp:0.37.0",
"verify": "docker image inspect ghcr.io/ashfordeou/kshana-mcp:0.37.0 --format '{{.Id}}'",
"registry": "https://github.com/ashfordeOU/kshana/pkgs/container/kshana-mcp",
"registry_label": "GitHub container registry",
"docs": "docs/mcp.html#install",
"docs_label": "MCP server guide: Docker",
"note": null,
"links": [],
"registry_name": null,
"parity": "ghcr.io kshana-mcp",
"optional": false,
"pending": false
},
{
"id": "mcp-desktop",
"group": "mcp",
"name": "Claude Desktop extension",
"audience": "Claude Desktop users, no terminal",
"requires": "none",
"command": "double-click kshana-mcp-<target>.mcpb",
"pinned": "kshana-mcp-<target>.mcpb of v0.37.0",
"verify": null,
"registry": "https://github.com/ashfordeOU/kshana/releases/tag/v0.37.0",
"registry_label": "GitHub release",
"docs": "https://github.com/ashfordeOU/kshana/blob/main/docs/MCP-INSTALL.md",
"docs_label": "Every MCP install snippet",
"note": null,
"links": [
{
"label": "macOS (Apple silicon)",
"url": "https://github.com/ashfordeOU/kshana/releases/download/v0.37.0/kshana-mcp-aarch64-apple-darwin.mcpb"
},
{
"label": "macOS (Intel)",
"url": "https://github.com/ashfordeOU/kshana/releases/download/v0.37.0/kshana-mcp-x86_64-apple-darwin.mcpb"
},
{
"label": "Windows",
"url": "https://github.com/ashfordeOU/kshana/releases/download/v0.37.0/kshana-mcp-x86_64-pc-windows-msvc.mcpb"
},
{
"label": "Linux (x86-64)",
"url": "https://github.com/ashfordeOU/kshana/releases/download/v0.37.0/kshana-mcp-x86_64-unknown-linux-gnu.mcpb"
},
{
"label": "Linux (Arm)",
"url": "https://github.com/ashfordeOU/kshana/releases/download/v0.37.0/kshana-mcp-aarch64-unknown-linux-gnu.mcpb"
}
],
"registry_name": null,
"parity": "GitHub release assets",
"optional": false,
"pending": false
},
{
"id": "mcp-cursor",
"group": "mcp",
"name": "Cursor (one click)",
"audience": "Cursor users",
"requires": "Node, or Docker",
"command": "npx -y kshana-mcp@0.37.0",
"pinned": "kshana-mcp@0.37.0 / ghcr.io/ashfordeou/kshana-mcp:0.37.0",
"verify": null,
"registry": null,
"registry_label": null,
"docs": "https://github.com/ashfordeOU/kshana/blob/main/docs/MCP-INSTALL.md",
"docs_label": "Every MCP install snippet",
"note": null,
"links": [
{
"label": "Add to Cursor (npx)",
"url": "https://cursor.com/en/install-mcp?name=kshana&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImtzaGFuYS1tY3BAMC4zNy4wIl19"
},
{
"label": "Add to Cursor (Docker)",
"url": "https://cursor.com/en/install-mcp?name=kshana&config=eyJjb21tYW5kIjoiZG9ja2VyIiwiYXJncyI6WyJydW4iLCItaSIsIi0tcm0iLCJnaGNyLmlvL2FzaGZvcmRlb3Uva3NoYW5hLW1jcDowLjM3LjAiXX0%3D"
}
],
"registry_name": null,
"parity": "npm kshana-mcp",
"optional": false,
"pending": false
},
{
"id": "mcp-vscode",
"group": "mcp",
"name": "VS Code (one click)",
"audience": "VS Code and Insiders users",
"requires": "Node, or Docker",
"command": "npx -y kshana-mcp@0.37.0",
"pinned": "kshana-mcp@0.37.0 / ghcr.io/ashfordeou/kshana-mcp:0.37.0",
"verify": null,
"registry": null,
"registry_label": null,
"docs": "https://github.com/ashfordeOU/kshana/blob/main/docs/MCP-INSTALL.md",
"docs_label": "Every MCP install snippet",
"note": null,
"links": [
{
"label": "Install in VS Code (npx)",
"url": "https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522kshana%2522%252C%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522-y%2522%252C%2522kshana-mcp%25400.37.0%2522%255D%257D"
},
{
"label": "Install in VS Code (Docker)",
"url": "https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522kshana%2522%252C%2522command%2522%253A%2522docker%2522%252C%2522args%2522%253A%255B%2522run%2522%252C%2522-i%2522%252C%2522--rm%2522%252C%2522ghcr.io%252Fashfordeou%252Fkshana-mcp%253A0.37.0%2522%255D%257D"
},
{
"label": "Install in VS Code Insiders (npx)",
"url": "https://insiders.vscode.dev/redirect?url=vscode-insiders%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522kshana%2522%252C%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522-y%2522%252C%2522kshana-mcp%25400.37.0%2522%255D%257D"
}
],
"registry_name": null,
"parity": "npm kshana-mcp",
"optional": false,
"pending": false
},
{
"id": "mcp-claude-code",
"group": "mcp",
"name": "Claude Code",
"audience": "Claude Code users",
"requires": "Node (or Docker)",
"command": "claude mcp add kshana -- npx -y kshana-mcp@0.37.0",
"pinned": "kshana-mcp@0.37.0",
"verify": null,
"registry": null,
"registry_label": null,
"docs": "https://github.com/ashfordeOU/kshana/blob/main/docs/MCP-INSTALL.md",
"docs_label": "Every MCP install snippet",
"note": "Or the plugin: /plugin marketplace add ashfordeOU/kshana, then /plugin install kshana@ashforde.",
"links": [],
"registry_name": null,
"parity": "npm kshana-mcp",
"optional": false,
"pending": false
},
{
"id": "mcp-npx",
"group": "mcp",
"name": "npx",
"audience": "Node users, any MCP client",
"requires": "Node 18+",
"command": "npx -y kshana-mcp@0.37.0",
"pinned": "kshana-mcp@0.37.0",
"verify": "npx -y kshana-mcp@0.37.0 --version",
"registry": "https://www.npmjs.com/package/kshana-mcp",
"registry_label": "npm: kshana-mcp",
"docs": "https://github.com/ashfordeOU/kshana/blob/main/docs/MCP-INSTALL.md",
"docs_label": "Every MCP install snippet",
"note": "A launcher: it downloads the release binary, verifies SHA256SUMS and runs it.",
"links": [],
"registry_name": null,
"parity": "npm kshana-mcp",
"optional": false,
"pending": false
},
{
"id": "mcp-uvx",
"group": "mcp",
"name": "uvx / pipx",
"audience": "Python users, any MCP client",
"requires": "Python 3.9+ with uv or pipx",
"command": "uvx kshana-mcp==0.37.0",
"pinned": "kshana-mcp==0.37.0",
"verify": "uvx kshana-mcp==0.37.0 --version",
"registry": "https://pypi.org/project/kshana-mcp/",
"registry_label": "PyPI: kshana-mcp",
"docs": "https://github.com/ashfordeOU/kshana/blob/main/docs/MCP-INSTALL.md",
"docs_label": "Every MCP install snippet",
"note": null,
"links": [],
"registry_name": null,
"parity": "PyPI kshana-mcp",
"optional": false,
"pending": false
},
{
"id": "mcp-brew",
"group": "mcp",
"name": "Homebrew",
"audience": "macOS and Linux",
"requires": "brew",
"command": "brew install ashfordeOU/tap/kshana-mcp",
"pinned": "formula for v0.37.0",
"verify": "kshana-mcp --version",
"registry": "https://github.com/ashfordeOU/homebrew-tap",
"registry_label": "Homebrew tap",
"docs": "https://github.com/ashfordeOU/kshana/blob/main/docs/MCP-INSTALL.md",
"docs_label": "Every MCP install snippet",
"note": null,
"links": [],
"registry_name": null,
"parity": "Homebrew tap kshana-mcp",
"optional": true,
"pending": false
},
{
"id": "mcp-scoop",
"group": "mcp",
"name": "Scoop",
"audience": "Windows",
"requires": "Scoop",
"command": "scoop bucket add ashforde https://github.com/ashfordeOU/scoop-bucket && scoop install kshana-mcp",
"pinned": "manifest for v0.37.0",
"verify": "kshana-mcp --version",
"registry": "https://github.com/ashfordeOU/scoop-bucket",
"registry_label": "Scoop bucket",
"docs": "https://github.com/ashfordeOU/kshana/blob/main/docs/MCP-INSTALL.md",
"docs_label": "Every MCP install snippet",
"note": null,
"links": [],
"registry_name": null,
"parity": "Scoop bucket kshana-mcp",
"optional": true,
"pending": false
},
{
"id": "mcp-winget",
"group": "mcp",
"name": "winget",
"audience": "Windows",
"requires": "winget",
"command": "winget install AshfordeOU.KshanaMcp",
"pinned": "winget install AshfordeOU.KshanaMcp --version 0.37.0",
"verify": "kshana-mcp --version",
"registry": "https://github.com/microsoft/winget-pkgs",
"registry_label": "winget-pkgs",
"docs": "https://github.com/ashfordeOU/kshana/blob/main/docs/MCP-INSTALL.md",
"docs_label": "Every MCP install snippet",
"note": "Appears once Microsoft merges the submission.",
"links": [],
"registry_name": null,
"parity": "winget AshfordeOU.KshanaMcp",
"optional": true,
"pending": true
},
{
"id": "mcp-binary",
"group": "mcp",
"name": "Prebuilt binary",
"audience": "no package manager",
"requires": "none",
"command": "download kshana-mcp-<target> from the release and check it against SHA256SUMS",
"pinned": "v0.37.0",
"verify": "gh attestation verify <file> --repo ashfordeOU/kshana",
"registry": "https://github.com/ashfordeOU/kshana/releases/tag/v0.37.0",
"registry_label": "GitHub release",
"docs": "https://github.com/ashfordeOU/kshana/blob/main/docs/MCP-INSTALL.md",
"docs_label": "Every MCP install snippet",
"note": null,
"links": [],
"registry_name": null,
"parity": "GitHub release assets",
"optional": false,
"pending": false
},
{
"id": "mcp-registry",
"group": "mcp",
"name": "Official MCP registry",
"audience": "registry-aware MCP clients",
"requires": "a registry-aware client",
"command": "search io.github.ashfordeOU/kshana-mcp",
"pinned": "0.37.0",
"verify": null,
"registry": "https://registry.modelcontextprotocol.io/v0/servers?search=io.github.ashfordeOU/kshana-mcp",
"registry_label": "MCP registry",
"docs": "https://github.com/ashfordeOU/kshana/blob/main/docs/MCP-INSTALL.md",
"docs_label": "Every MCP install snippet",
"note": null,
"links": [],
"registry_name": "io.github.ashfordeOU/kshana-mcp",
"parity": "MCP registry kshana-mcp",
"optional": true,
"pending": false
},
{
"id": "mcp-http",
"group": "mcp",
"name": "Remote (streamable HTTP), self-hosted",
"audience": "clients that take a URL",
"requires": "your own host",
"command": "kshana-mcp --http 127.0.0.1:8080",
"pinned": "v0.37.0",
"verify": null,
"registry": null,
"registry_label": null,
"docs": "https://github.com/ashfordeOU/kshana/blob/main/docs/deploy/mcp-http.md",
"docs_label": "Self-hosting guide",
"note": "Loopback by default; a non-loopback bind needs --allow-remote and a bearer token. Kshana hosts no endpoint.",
"links": [],
"registry_name": null,
"parity": null,
"optional": false,
"pending": false
},
{
"id": "claude-plugin",
"group": "integrations",
"name": "Claude Code plugin marketplace",
"audience": "Claude Code users who want slash commands over the tools",
"requires": "Claude Code",
"command": "/plugin marketplace add ashfordeOU/kshana",
"pinned": "/plugin install kshana@ashforde",
"verify": null,
"registry": "https://github.com/ashfordeOU/kshana",
"registry_label": "Marketplace: ashfordeOU/kshana",
"docs": "https://github.com/ashfordeOU/kshana/blob/main/docs/AGENTS.md",
"docs_label": "Using Kshana from an agent",
"note": null,
"links": [],
"registry_name": null,
"parity": null,
"optional": false,
"pending": false
},
{
"id": "jetbrains",
"group": "integrations",
"name": "JetBrains IDE plugin",
"audience": "IntelliJ, PyCharm and CLion users",
"requires": "a JetBrains IDE",
"command": null,
"pinned": null,
"verify": null,
"registry": "https://plugins.jetbrains.com/plugin/32181-kshana--pnt-simulator",
"registry_label": "JetBrains Marketplace",
"docs": "docs/jetbrains.html",
"docs_label": "Plugin guide",
"note": "Settings → Plugins → Marketplace → search \"Kshana\" (plugin ID dev.kshana.ide). Right-click a scenario .toml and choose Run Kshana Scenario.",
"links": [],
"registry_name": null,
"parity": null,
"optional": false,
"pending": false
},
{
"id": "signalk",
"group": "integrations",
"name": "Signal K plugin",
"audience": "boat owners running a Signal K server",
"requires": "Node, a Signal K server",
"command": "npm install signalk-kshana-trust",
"pinned": "npm install signalk-kshana-trust@0.37.0",
"verify": "npm ls signalk-kshana-trust",
"registry": "https://www.npmjs.com/package/signalk-kshana-trust",
"registry_label": "npm: signalk-kshana-trust",
"docs": "https://github.com/ashfordeOU/kshana/blob/main/integrations/signalk/README.md",
"docs_label": "Signal K plugin guide",
"note": null,
"links": [],
"registry_name": null,
"parity": "npm signalk-kshana-trust",
"optional": true,
"pending": false
},
{
"id": "opencpn",
"group": "integrations",
"name": "OpenCPN plugin",
"audience": "OpenCPN chartplotter users",
"requires": "OpenCPN 5.8+",
"command": "download the plugin tarball from the release",
"pinned": "kshana_pi-0.37.0-1_ubuntu-wx32-24.04-x86_64.tar.gz of v0.37.0",
"verify": null,
"registry": "https://github.com/ashfordeOU/kshana/releases/tag/v0.37.0",
"registry_label": "GitHub release",
"docs": "https://github.com/ashfordeOU/kshana/blob/main/packaging/opencpn/SUBMITTING.md",
"docs_label": "OpenCPN catalogue submission",
"note": "The release carries the tarball and its catalogue metadata XML; listing in OpenCPN's catalogue is a pull request opened by hand.",
"links": [],
"registry_name": null,
"parity": "GitHub release assets",
"optional": false,
"pending": false
},
{
"id": "grafana",
"group": "integrations",
"name": "Grafana dashboard",
"audience": "operators running Grafana",
"requires": "Grafana",
"command": "import kshana-grafana-*.json from the release",
"pinned": "kshana-grafana-0.37.0.json of v0.37.0",
"verify": null,
"registry": "https://github.com/ashfordeOU/kshana/releases/tag/v0.37.0",
"registry_label": "GitHub release",
"docs": "https://github.com/ashfordeOU/kshana/blob/main/deploy/grafana/kshana-gnss-trust.json",
"docs_label": "Dashboard source",
"note": null,
"links": [],
"registry_name": null,
"parity": "GitHub release assets",
"optional": false,
"pending": false
},
{
"id": "reference-image",
"group": "integrations",
"name": "Reference-build image",
"audience": "gate and bench deployments",
"requires": "Docker",
"command": "docker pull ghcr.io/ashfordeou/kshana-reference-build",
"pinned": "docker pull ghcr.io/ashfordeou/kshana-reference-build:0.37.0",
"verify": null,
"registry": "https://github.com/ashfordeOU/kshana/pkgs/container/kshana-reference-build",
"registry_label": "GitHub container registry",
"docs": "https://github.com/ashfordeOU/kshana/blob/main/docs/MARINE-INTEGRATIONS.md",
"docs_label": "Marine integrations",
"note": null,
"links": [],
"registry_name": null,
"parity": "ghcr.io kshana-reference-build",
"optional": false,
"pending": false
}
]
}