AXIS Documentation
Open charting PWA — orthogonal sources, streams, engines, and storage. Own the axes; swap the engine.
This page
Manuals
AXIS Documentation
AXIS is an installable charting PWA (v2.5.0) that treats price, time, and calculation as separable axes. Sources load history. Streams advance the present. Engines evaluate Pine Script™ via PYNE. Storage keeps your script library. Compose any lawful combination without a proprietary charting host.
Pine Script™ and TradingView® are trademarks of TradingView, Inc. Cloudflare® is a registered trademark of Cloudflare, Inc. This project is independent and not affiliated with or endorsed by TradingView, Inc. or Cloudflare, Inc.
Abstract
AXIS is a charting PWA, not a language rewrite. Language fidelity lives in PYNE. The PWA contributes:
- A unified plugin registry (
source | stream | engine | storage | dataset | component) - A Solid + Vite product UI (chart, editor, results, manager, Workers Manager, on-chain panel) with a mobile-first responsive shell and global keyboard shortcuts (recordable, persisted)
- Optional backends: local Flask, offline Pyodide, Cloudflare® Worker (+ DO/KV/D1/R2 +
/api/onchainproxy) - AXIS CLI + optional Tauri desktop shell for operators
Invariant (AXIS ≠ engine): the shell never embeds a closed interpreter. Evaluation is always an engine plugin.
Product map
| Track | Role | Start here |
|---|---|---|
| End User | Install, compose recipes, research workflows | End User hub |
| Architecture | ADRs, topologies, state namespaces | Architecture |
| Plugins | Contracts and built-in catalogs | Plugins |
| UI | Chart, editor, panels, store | UI |
| Worker | CF Pages + Worker data plane | Worker |
| DevOps | Build, CLI, VPS, CORS, CI | DevOps · AXIS CLI |
| Evaluation | Flask / Pyodide / Worker proxy — not PyneTS, not HOOX execution | Evaluation map |
| PYNE (separate) | Grammar & evaluator | PYNE docs |
Conceptual model
Rendering…
Formal active set:
Active set = { source, stream, engine, storage }
Contract namespace: pynescript.axis.plugins.v1
App state: pynescript.axis.v1
On-chain datasets: kind dataset (+ source geckoterminal-ohlcv for pool candles)
Compose in one glance
| Recipe | Source | Stream | Engine | Storage |
|---|---|---|---|---|
| Offline lab | mock-walk | mock-poll | pyodide | local |
| Desk research | binance-rest | binance-ws | server → Flask | local |
| AXIS at the edge | venue REST | venue WS / DO | server → Worker | cloud |
| On-chain TVL + CEX | binance-rest + DefiLlama dataset | venue WS | any | local |
| DEX pool candles | geckoterminal-ohlcv | mock-poll | any | local |
| Repo library | any | any | any | git |
Full recipes: Compose recipes.
Infrastructure names (do not rename lightly)
| Surface | Value |
|---|---|
| CF Pages project | axis |
| Pages URL | https://axis.hoox.sh |
| CF Worker script | worker-axis |
| Worker URL | https://worker.axis.hoox.sh |
| Health JSON service | worker-axis |
| Product brand | AXIS |
Demo topologies
- Dev: Vite
:3000+ Flask:5002(axis installthenbun run dev) - Desktop:
bun run desktop:dev(Tauri 2) - Static:
bun run build+axis_pwa_server.py:8081 - Worker:
axis dev worker/ wrangler on:8787 - Prod:
axis deploy→ Workerworker-axis(https://worker.axis.hoox.sh) + Pageshttps://axis.hoox.sh
See topologies, AXIS CLI, and local dev.
Offline & agent exports
Auto-generated like HOOX manuals (bun run docs:exports):
| Kind | Path |
|---|---|
| Full-corpus LLM pack | llm.txt |
| LLM site map (llmstxt.org) | llms.txt |
| Track PDFs (A4) | /exports/axis-*-manual.pdf |