CLI for cist kernel telemetry and compilation
Project description
CIST Monorepo
Polyglot monorepo for the Contract Instruction Set (.cis) language.
This repository ships three user-facing pieces together:
cist-kernelPython package — the CLI, the syntax validator, and the cloud compiler client.- A VS Code extension bundled inside the package —
cist initinstalls it into your local VS Code extensions folder. - A build orchestrator (
scripts/build.py) for cutting releases.
Language Snapshot
use math
use compute
use risk
market_data := from data (source: "binance", symbols: ["BTC-USD"], resolution: "1m")
sma_20 := math.sma(market_data.close, 20)
signal := compute.crossover(market_data.price, sma_20)
if signal and position.size == 0:
execute(market_buy(size: risk.calculate_size(portfolio_value: 10000)))
elif position.pnl < -100:
execute(close_position())
Repository Layout
cist/
├── pyproject.toml
├── README.md
├── .env.example
├── scripts/
│ └── build.py
├── cist_cli/
│ ├── __init__.py
│ ├── main.py
│ ├── parser.py
│ ├── network.py
│ └── assets/
│ └── .gitkeep
├── tests/
│ └── test_parser.py
└── vscode-extension/
├── README.md
├── package.json
├── language-configuration.json
└── syntaxes/
└── cis.tmLanguage.json
Getting Started
python -m pip install --upgrade cist-kernel
cist init
If cist is not on your PATH yet, use the fallback:
python -m cist_cli
Works on Windows, macOS, and Linux immediately after install — no extra tools. Running python -m cist_cli with no arguments automatically runs init.
If you installed an older release already, the --upgrade matters. Plain pip install cist-kernel will keep the old version and will not add the newer python -m cist_cli entrypoint.
After init runs, if cist isn't yet on your PATH it will print the exact one-liner to fix it permanently. Once you've done that (and reopened your terminal), you can use the short form for everything:
cist compile contracts/my_strategy.cis
init creates a workspace, writes a .env config file, removes the broken legacy CIST extension if present, and installs the bundled VS Code syntax extension. If you want to re-run only the extension step later, use python -m cist_cli sync-vscode-extension, or cist sync-vscode-extension after PATH is configured.
Add --deploy to mark a build as live:
cist compile contracts/my_strategy.cis --deploy
How To Use CIST
python -m pip install --upgrade cist-kernel— install the latest release.cist init— preferred first run. Ifcistis not on PATH yet, usepython -m cist_cliinstead. No args = auto-runsinit.- Add your
CIST_CLOUD_API_KEYto the generated.env. - Write
.cisfiles incontracts/. cist compile <file.cis>— validates syntax locally, then streams compilation output from the cloud.
Example contract:
use math
use compute
use risk
market_data := from data (source: "binance", symbols: ["BTC-USD"], resolution: "1m")
sma_20 := math.sma(market_data.close, 20)
signal := compute.crossover(market_data.price, sma_20)
if signal and position.size == 0:
execute(market_buy(size: risk.calculate_size(portfolio_value: 10000)))
elif position.pnl < -100:
execute(close_position())
CLI Reference
cist init [--path <dir>]
- Creates
contracts/andexample.cis. - Writes a
.envstub withCIST_CLOUD_API_KEYplaceholder. - Removes the broken legacy
tooig research lab.cistextension if it exists. - Installs the bundled
.cisVS Code extension into your local extensions folder.
cist sync-vscode-extension
- Re-installs or updates the bundled
.cisVS Code extension. - Uses the latest bundled VSIX from
cist_cli/assets/. - Fails with a clear message if the bundled VSIX is missing or the extensions folder cannot be written.
cist compile <file.cis> [--deploy] [--verbose]
- Validates syntax locally first (bracket matching,
useimports,from dataexpressions, encoding). - Streams compilation logs, artifacts, and errors from the cloud compiler.
--deployflags the build as ready for live execution.--verboseprints detected modules and data stream count.
Configuration
The CLI reads environment variables directly and also loads them from .env if present.
Required for cloud compilation:
CIST_CLOUD_API_KEY=sk_live_your_api_key_here
Optional override:
CIST_CLOUD_ENDPOINT=https://api.cist.io/v1
Build Artifacts
Build both deliverables with:
python scripts/build.py
Expected outputs:
dist/cist_kernel-*.whl
During the build, a .vsix is created temporarily so it can be bundled into the wheel. The local build script removes that generated .vsix afterward, so it does not stay in the repo.
Notes
- Local validation is lightweight and non-executing. It checks UTF-8 decoding, bracket matching, quote closure,
usestatements,from data (...)expressions, and mixed tab/space indentation. - Cloud compilation requires
CIST_CLOUD_API_KEY. The CLI also reads.envautomatically if present. - The VS Code grammar uses Python-style scope categories while adding CIST-specific handling for
useandfrom data.
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 Distributions
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 cist_kernel-0.0.18-py3-none-any.whl.
File metadata
- Download URL: cist_kernel-0.0.18-py3-none-any.whl
- Upload date:
- Size: 16.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37bfdf11d5029eda0cf79375c8f4ba1cd798589075f32ee3a34ff1591d018f37
|
|
| MD5 |
1f92d9109bde15577d0be237bbb348fc
|
|
| BLAKE2b-256 |
4c6124d675f244573d742d0d00c36b291ff36ad6157fc7df8631ab5122854377
|