A highly opinionated way to generate and maintain projects with Jsonnet.
Project description
wiswa
A highly opinionated way to generate projects with Jsonnet.
Installation
We recommend a global install so wiswa and wiswa-mcp are on your PATH
from any working directory:
uv tool install wiswa
Or with pipx:
pipx install wiswa
If you prefer not to install globally, add Wiswa as a development dependency
of your project—for example uv add --group dev wiswa, or list wiswa under
dependency-groups.dev in pyproject.toml and install inside the project
virtual environment with your usual workflow.
Usage
Add -d to show debug logs.
Usage: wiswa [OPTIONS] [FILE]
Entry point for the Wiswa CLI.
Options:
--cache-time INTEGER Cache expiry time in seconds. [default:
600]
-d, --debug Enable debug output.
-J, --jpath TEXT Add a directory to the Jsonnet search path
(only used when evaluating settings).
--no-cache Disable HTTP response caching.
-o, --output-dir DIRECTORY Output directory for generated files.
-q, --quiet Suppress the progress spinner.
--skip-jsonnet Skip project.jsonnet manifests; settings merge still runs.
--skip-postprocess Skip post-processing steps.
--skip-remote Skip configuring the remote Git host (GitHub or GitLab).
--skip-static Skip copying static files.
--skip-templates Skip Jinja2 template evaluation.
--skip-yarn Skip Yarn download.
-h, --help Show this message and exit.
Remote API tokens (GitHub and GitLab)
When Wiswa configures the remote (wiswa without --skip-remote), it calls the GitHub or GitLab
API using a personal access token. Tokens are read from the environment when supported, or from
the system keyring. Service names include the repository hostname so different hosts (for
example GitHub.com, GitHub Enterprise, or self-managed GitLab) keep separate credentials.
Keyring entries use the usual service name and username fields (for example as shown by
secret-tool on Linux or Keychain Access on macOS). The username is normally your OS login
name (whoami).
GitHub
- Service
wiswa-github:<hostname>, username your OS user. The hostname is taken fromrepository_uri(for examplegithub.comforhttps://github.com/org/repo).
Example (hostname github.com, OS user alice):
python -m keyring set 'wiswa-github:github.com' alice
# paste the token at the prompt
GitLab
- Environment:
GITLAB_TOKEN(if set, used first). - Preferred: service
wiswa-gitlab:<hostname>, username your OS user (for examplewiswa-gitlab:gitlab.com). - Same service with username equal to the hostname is also checked (for older or alternate storage patterns).
Example for gitlab.com:
export GITLAB_TOKEN='glpat-...' # optional; overrides keyring
python -m keyring set 'wiswa-gitlab:gitlab.com' "$(whoami)"
MCP Server
Wiswa includes an MCP server (wiswa-mcp) that exposes settings discovery tools for AI assistants.
Claude Code
claude mcp add wiswa-mcp -- wiswa-mcp
Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"wiswa-mcp": {
"command": "wiswa-mcp"
}
}
}
GitHub Copilot CLI
Add to .github/copilot/mcp.json:
{
"mcpServers": {
"wiswa-mcp": {
"command": "wiswa-mcp"
}
}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wiswa-0.3.0.tar.gz.
File metadata
- Download URL: wiswa-0.3.0.tar.gz
- Upload date:
- Size: 160.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
115f28c23d2603bf35841086e1800e7463b20fc1cfacecea8c16f13b1187bd0b
|
|
| MD5 |
c51997fbd2aad7749cb468656fe7bae8
|
|
| BLAKE2b-256 |
1e9b9fec98ce19c0cb0f12a71913e27fef0957c2806b73f667423b97149c9577
|
Provenance
The following attestation bundles were made for wiswa-0.3.0.tar.gz:
Publisher:
publish.yml on Tatsh/wiswa
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wiswa-0.3.0.tar.gz -
Subject digest:
115f28c23d2603bf35841086e1800e7463b20fc1cfacecea8c16f13b1187bd0b - Sigstore transparency entry: 1392872593
- Sigstore integration time:
-
Permalink:
Tatsh/wiswa@7b1ea54239e42590f9cbaa2da0a24c9e6c49e90a -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/Tatsh
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7b1ea54239e42590f9cbaa2da0a24c9e6c49e90a -
Trigger Event:
push
-
Statement type:
File details
Details for the file wiswa-0.3.0-py3-none-any.whl.
File metadata
- Download URL: wiswa-0.3.0-py3-none-any.whl
- Upload date:
- Size: 145.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a6e2d3372116bc490f101c97f4b9fc53533265ff541a33a641e4ac20ffe9040b
|
|
| MD5 |
91e8342fa32a52aa1718e7d5605a0e10
|
|
| BLAKE2b-256 |
83cbf6d6f0690f49698a3766a16224a44250c638dce5edd5b5a62777856b1085
|
Provenance
The following attestation bundles were made for wiswa-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on Tatsh/wiswa
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wiswa-0.3.0-py3-none-any.whl -
Subject digest:
a6e2d3372116bc490f101c97f4b9fc53533265ff541a33a641e4ac20ffe9040b - Sigstore transparency entry: 1392872653
- Sigstore integration time:
-
Permalink:
Tatsh/wiswa@7b1ea54239e42590f9cbaa2da0a24c9e6c49e90a -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/Tatsh
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7b1ea54239e42590f9cbaa2da0a24c9e6c49e90a -
Trigger Event:
push
-
Statement type: