Mission-assurance personality layer for command-line tools. The worker. The mission. The font.
Project description
SHRAMIK · The worker. The mission. The font.
Drop-in mission-assurance personality for your command-line tools. Pure Python. Zero dependencies. CI/CD safe. Federal-friendly.
◉ SHRAMIK MISSION ASSURANCE PLATFORM
Validation → Performance → Readiness → Evidence → Authorization
One Platform. One Workflow. One Mission.
Why
Most CLI tools look like CLI tools. SHRAMIK tools look like mission consoles — without losing a single deterministic guarantee. The engine stays boring. Reports stay clean. The exit code is still the contract. The CLI just gets a soul.
Fonts wrap text in personality. ShramikFont wraps your CLI in personality. Drop it in, pick a theme, ship it.
The five-line drop-in
import shramikfont as sf
from shramikfont.cli import add_shramik_args
parser = add_shramik_args(your_existing_argparser)
args = parser.parse_args()
theme, _ = sf.resolve_theme(args.ui_theme) # auto-falls-back to 'none' in CI
sf.print_banner(theme, edition="Lite") # silent in CI, hype in futuristic mode
# ... your engine runs untouched ...
sf.mission.print_dashboard(theme, metrics) # executive-friendly post-run summary
That's the deal. Engine logic stays where it is. ShramikFont only writes to stdout, only after the engine asks it to, and only when the environment allows.
What it looks like
| Theme | Use for | Vibe |
|---|---|---|
classic |
Lite & Pro defaults | Familiar. Minimal. Doesn't show off. |
vintage |
Titan default. Federal proof runs. | Mature federal engineering aesthetic. No animation. |
futuristic |
Sales demos. Walkthroughs. --demo-ui. |
Full Palantir / Anduril hype. Cyber-glitch banner, pulses, loading bars. |
none |
CI/CD, --raw, --json, pipes |
Pure machine-readable. Auto-forced. |
Mission profiles
--profile smoke # Quick dev validation. Minimal output.
--profile stress # Heavy load. Vintage theme. Minimal UI.
--profile ci-gate # CI/CD. Forces theme=none, suppresses banner, deterministic.
--profile federal-proof # Fingerprint + integrity manifest + authorization badge + mission patch.
--profile airgap # Highlights no-internet, no-telemetry posture.
The 12 lovable features
- Mission Readiness Score (0–100) blending SLA / errors / latency / throughput
- Deployment Gate —
PASSorBLOCKEDwith enumerated reasons. Drives exit code. - Run Fingerprint —
SK-LITE-YYYYMMDD-HHMMSS-XXXX. Short, sortable, shareable. - Mission Control Dashboard — executive-friendly ASCII summary
- Evidence Vault — tidy summary of report artifacts with status badges
- Mission Timeline — Anduril-style timestamped event log
- SHA256 Integrity Manifest — federal-audit-grade artifact verification
- Authorization Badge —
READY FOR REVIEW/REQUIRES REMEDIATION(RMF / ATO language) - Air-Gap Readiness Panel — declares the run's air-gap posture, screenshot-worthy
- Mission Patch — ASCII patch in-terminal + SVG export for Slack / stickers
- Achievement Unlocks —
ZERO_ERROR_MISSION,SUSTAINED_TPS_500, etc. - Mission Log —
~/.shramik/log.jsonlremembers your last N runs
Plus a handful of pure-delight extras:
shramikfont vibe— today's mission vibe (morning / afternoon / Friday / weekend)shramikfont fortune— Unix-style mission aphorismsshramikfont demo— the full boot-sequence hype reelshramikfont screensaver— looping MISSION READY pulse until Ctrl+Cshramikfont readme— pretty-prints this README in-terminalshramikfont missions— your last 10 missions, color-codedshramikfont forge --plan pro— mints a demo license key (cosmetic)shramikfont patch --export run.svg— exports an SVG mission patch--sfx— opt-in sound effects on PASS / BLOCK (macOS / Linux / Windows)
Safety guarantees
ShramikFont never influences the engine. Hard rules enforced by shramikfont.safety:
CI=true,GITHUB_ACTIONS,GITLAB_CI,JENKINS_HOME,TF_BUILD,BUILDKITE,CIRCLECI,TRAVIS,BAMBOO_BUILD_NUMBER,TEAMCITY_VERSION,CODEBUILD_BUILD_ID,DRONE→ theme forced tonone--raw/--json/--output-json→ theme forced tonone(cannot be overridden, ever)- Stdout not a TTY (piped or redirected) → theme forced to
none --force-uioverrides CI auto-detect but not--raw/--json- Themes carry an explicit
sleep_multiplier. Non-futuristic themes set it to0.0— no animation, no delays, no surprises in long-running sessions.
The headline guarantee: switching themes never changes engine metrics. Covered by tests/test_themes_isolated.py::test_readiness_score_identical_regardless_of_theme.
Try it now
# 1. Run the full hype-reel demo
python3 -m shramikfont.cli demo
# 2. Run the example load tester in futuristic mode
python3 examples/shramik_lite.py --url https://httpbin.org/get \
--users 10 --duration 10 --ui-theme futuristic
# 3. Run the same thing as a federal proof
python3 examples/shramik_lite.py --url https://httpbin.org/get \
--users 10 --duration 10 \
--profile federal-proof --mission-patch \
--export-patch ~/Desktop/run.svg
# 4. Run it as a CI/CD gate (auto-disables all UI, deterministic 2-line output)
python3 examples/shramik_lite.py --url https://httpbin.org/get \
--users 10 --duration 10 --raw
# 5. Have fun
python3 -m shramikfont.cli vibe
python3 -m shramikfont.cli fortune
python3 -m shramikfont.cli patch --edition LITE --status READY
Install
pip install -e . # for now (PyPI later)
Or just drop the shramikfont/ folder next to your script. Pure stdlib means zero install friction.
Editions
ShramikFont ships with one PoC: examples/shramik_lite.py. It's a real load-tester (the engine from the v1.7.0 production Lite binary) with ShramikFont wrapped around it.
Future PoCs will follow the same pattern: take an existing engine, leave the engine alone, wrap the CLI surface in ShramikFont.
| Edition | Default theme | Status |
|---|---|---|
shramik_lite.py |
classic | ✅ v0.1.0 (examples/) — single-file load tester |
shramik_pro.py |
classic | ✅ v0.2.0 (examples/) — full Pro engine: SLA, --rampup, --pacing, bearer/basic auth, HTML/CSV/JSON exports, CPU/mem telemetry |
shramik_check.py |
classic | ✅ v0.2.0 (examples/) — functional API validation (subcommand CLI: doctor / run) |
shramik_flow.py |
classic | ✅ v0.2.0 (examples/) — CI/CD operational validation (subcommand CLI: version / doctor / check / report) |
shramik_titan.py |
vintage | planned (when the Titan async engine lands) |
Architecture
your_cli.py
↓
parse args → add_shramik_args()
↓
resolve theme → sf.resolve_theme() (auto-safe in CI / --raw / --json)
↓
print banner → sf.print_banner() (silent if theme.name == 'none')
↓
─────── your engine runs untouched ───────
↓
collect metrics → dict
↓
sf.mission.print_dashboard(theme, metrics)
sf.mission.print_readiness(theme, inputs)
sf.mission.print_gate(theme, gate_result)
sf.mission.print_fingerprint(theme, run_id)
sf.mission.print_timeline(theme, events)
sf.mission.print_mission_patch(theme, run_id)
↓
sys.exit(gate_result.exit_code)
The presentation layer never lives inside the request loop, latency collection, metrics engine, report serializer, or SLA evaluator. That's the contract.
Tests
python3 -m pytest tests/ -v
27 tests covering safety guardrails, readiness scoring, deployment gate logic, fingerprint format, and the theme-isolation guarantee.
Domains
- shramik.io — primary
- shramik.ai — reserved
- shramik.tech — reserved
License
MIT · © 2026 SHRAMIK · shramik.io
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 shramikfont-0.2.0.tar.gz.
File metadata
- Download URL: shramikfont-0.2.0.tar.gz
- Upload date:
- Size: 31.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
541c4a692c58dc1f0871ca7179878879d2f357a8facfeee0c5055b6f56447914
|
|
| MD5 |
3538e32cbf1639b4a0dc074d50309561
|
|
| BLAKE2b-256 |
4b8e802d7f41404f5200d066321cdff69bfd827a80c56c10d4d3da4e3f84d0e1
|
Provenance
The following attestation bundles were made for shramikfont-0.2.0.tar.gz:
Publisher:
publish.yml on SHRAMIK-IO/shramikfont
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
shramikfont-0.2.0.tar.gz -
Subject digest:
541c4a692c58dc1f0871ca7179878879d2f357a8facfeee0c5055b6f56447914 - Sigstore transparency entry: 1676706438
- Sigstore integration time:
-
Permalink:
SHRAMIK-IO/shramikfont@7ddf17b884bc93e0f383d7722d3b0119a74afc84 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/SHRAMIK-IO
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7ddf17b884bc93e0f383d7722d3b0119a74afc84 -
Trigger Event:
push
-
Statement type:
File details
Details for the file shramikfont-0.2.0-py3-none-any.whl.
File metadata
- Download URL: shramikfont-0.2.0-py3-none-any.whl
- Upload date:
- Size: 34.9 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 |
11737e70cd5d6ad70b1987170cb5b4a50632f1d87055284e3d6413fcb899cbad
|
|
| MD5 |
a0a07b47d576c53f3b3812baf4c57cfb
|
|
| BLAKE2b-256 |
9668ad8dba3c441c0d356a2a29bb65d64a841ddd9012650f73a6af7071627e0b
|
Provenance
The following attestation bundles were made for shramikfont-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on SHRAMIK-IO/shramikfont
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
shramikfont-0.2.0-py3-none-any.whl -
Subject digest:
11737e70cd5d6ad70b1987170cb5b4a50632f1d87055284e3d6413fcb899cbad - Sigstore transparency entry: 1676706441
- Sigstore integration time:
-
Permalink:
SHRAMIK-IO/shramikfont@7ddf17b884bc93e0f383d7722d3b0119a74afc84 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/SHRAMIK-IO
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7ddf17b884bc93e0f383d7722d3b0119a74afc84 -
Trigger Event:
push
-
Statement type: