sanka-cli
sanka-cli is Sanka's single Python distribution. It installs one sanka
executable and contains:
- the Apache-2.0 hosted command dispatcher, authentication, output, and
optional MCP integration under
sanka_cli; - the embedded Apache-2.0 Connector SDK under
sanka_connector; and - the AGPL-3.0-only local migration runtime under
sanka.
Python 3.12 or newer is required.
Install
uv tool install sanka-cli
sanka --help
For the stdio MCP server:
uv tool install 'sanka-cli[mcp]'
sanka mcp
The base tool does not install framework migrations or provider drivers. Components are immutable GitHub release wheels selected through the extension manager:
sanka extension marketplace add https://github.com/sankaHQ/extensions.git --name sanka
sanka extension add sanka/drf-to-fastapi
sanka extension add sanka/markdown
sanka extension add sanka/sqlite
PyPI is not used as an extension fallback.
Local commands
sanka scan .
sanka plan .
sanka apply --plan-hash sha256:<hash-from-plan>
sanka test .
sanka verify .
Data migrations default to sanka.yaml:
source:
type: markdown
connection: ./content
target:
type: sqlite
connection: content.db
scan, marketplace management, extension installation, local planning,
testing, and verification never require a Sanka API token. Hosted resources,
workflows, AI, Custom Code, and explicitly cloud-selected migrations retain
their existing authentication requirements. Add --json to local lifecycle
commands for the stable sanka-cli/v1 response envelope.
Extension trust
The manager verifies a trusted marketplace snapshot, manifest schema,
component/runtime compatibility, exact wheel URL and SHA-256 digest, package
metadata, entry points, and installed files. Project locks record the exact
snapshot and artifact identities in .sanka/extensions.lock.
Migration components use the sanka-extension/v1 subprocess protocol.
Connector implementations load only in an isolated child environment and are
proxied over sanka-connector/v1; provider code is never imported into the
main CLI process. Hosted providers are not local connectors.
Python facade
from sanka import Sanka
Sanka.connect(...) creates a write-free endpoint descriptor.
Sanka.migrate(...) creates or resumes a local lifecycle handle. Planning is
destination-write-free, and apply requires the exact plan hash returned by
plan.
SDK automation
The Python and Node sanka-sdk migration adapters invoke
sanka <command> ... --json as a local subprocess. They do not call hosted
execution for local commands, require an API token, auto-install this package,
or replace its framework detection and safety defaults.
MCP tools
sanka mcp exposes sanka_research_eol, sanka_research_tco,
sanka_research_compare, and sanka_assess. Public research and assessment
remain credential-free; the MCP server does not execute migrations.
License
The distribution license expression is
Apache-2.0 AND AGPL-3.0-only. Both license texts and the historical hosted
CLI notice ship in the wheel and source archive. File-level SPDX identifiers
are authoritative.
Release files for sanka-cli 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sanka_cli-0.2.1.tar.gz | 309.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sanka_cli-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 538.8 kB
Release files / sanka_cli-0.2.1.tar.gz
| Download URL | sanka_cli-0.2.1.tar.gz |
|---|---|
| Size | 309.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
693f159bb04854f7a11f32cd1345095a74c40b20a7516401f2536a60006943b2
|
|
BLAKE2b-256 checksum How to use checksums |
21ebae3e883d6173b66165335fd1550c12f51d58500700483613c25ed7b92e9c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 3, 2026.
Transparency logRelease files / sanka_cli-0.2.1-py3-none-any.whl
| Download URL | sanka_cli-0.2.1-py3-none-any.whl |
|---|---|
| Size | 229.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8c65356f5cdd02b31d05163a0fc40f94afa9a5a33df8befb17392f057c627188
|
|
BLAKE2b-256 checksum How to use checksums |
35f41a4c907ce36b7e23c0fd7623044eb9cf44ee9c2d184aecc6c8af621bbf12
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 3, 2026.
Transparency log