Skip to main content
Incomplete provenance

12 of 20 files were uploaded without provenance metadata. View details.

Atabet-Terminal

A browser-based financial terminal for the Atabet Quant Intelligence product line: professional charting, built-in and custom indicators, paper and live trading, strategy visualization, and an in-terminal AI assistant.

Status: Phases 1–11 complete (skeleton + demo data, licensing gate, real data channels, professional Atabet layout, default indicators, live updates, custom indicator editor, broker Engine, AI chatbox, Quant Intelligence launcher, strategy session). Packaging polish is Phase 12 of the build guide. Product spec: 07-atabet-terminal.md. Real channels flow through atabet-data and broker access through atabet-trader (never a vendor SDK directly).

Features (current)

  • Demo mode — deterministic synthetic OHLCV for DEMO.A / DEMO.B / DEMO.C (~20k one-minute bars each), cached as Parquet
  • Bars API — /api/bars with 1m/5m/15m/1h/1D resampling; all times are UTC Unix seconds (Lightweight Charts contract). Search and source chips map a typed name onto the channel-native ticker (700 → yahoo 0700.HK, futu HK.00700) and refuse mismatches (DEMO.A on yahoo) with a suggested alternative.
  • Live stream — /ws/stream subscribe/unsubscribe; demo keeps the Phase 1 simulator; real channels share a process-wide refresh hub that polls atabet-data (intraday 1–5 s, daily 30–60 s, no poll for localcsv/tushare) and pushes {type:"bar"|"bar_new"}. Futu/qmt overlay a live snapshot onto cached bars (no kline on each poll). N subscribers coalesce to one upstream request per (source, symbol); the task cancels when the last client unsubscribes
  • Licensing gate — Quant Intelligence license (com.atabet.chat) validated at boot via atabet-token; basic/professional plan rules mirror atabet-data's entitlements exactly; standalone key entry (/api/license/activate) or seat-sharing handoff from the app; 402 with upgrade message for Pro-only channels; demo mode otherwise
  • Real data channels — Basic: yahoo, localcsv, tushare. Pro: futu, ib, qmt. Interactive Brokers is both a broker gateway and an atabet-data chart channel (source='ib') once TWS / IB Gateway is running. Simulate/Live with live_source='ib' switches the chart to IB history + snapshot polls. Catalog comes from atabet-data (hidden adapters are omitted, not deleted). Parquet cache per (source, ticker, granularity): intraday charts store raw 1m bars and resample; daily charts store native 1D bars. Timeframe switches reuse that 1m store (with a small slack so “now” does not force a re-download); only missing head/tail gaps hit the vendor, and a rate-limit after a successful fill still serves the cache. Yahoo 1m is fetched in ≤6-day slices (vendor cap is 7 calendar days per call). Bound localcsv charts default to the last 500 bars actually in the folder (4000 days on 1D) and pick K_1M / K_1D from the timeframe; they do not assume a live tail ending now. Channel errors surface honestly (422 range / 501 unsupported / 502 transport or vendor runtime)
  • Channel catalog — GET /api/channels renders the operation matrix (operations, params, ticker conventions, requires_pro, intraday_capable) straight from atabet_data.channel_catalog.json
  • Health — /api/health reports status, mode, licensing state
  • Professional layout — persistent beta banner (preview status; copy follows locale), TopBar (logo + two-line brand, symbol-search typeahead with recents, channel chips with 🔒 for Pro-only, plan badge, timezone + locale pickers), region grid (watchlist rail | chart + status bar | collapsible AI drawer with persisted width). The status bar (feed time, source, mode, short license expiry, clock in the display timezone) stays under the chart so it does not cross the composer. Visual language of the Atabet training site (forest/gold/cream, serif headings, pill chips)
  • Charting — Lightweight Charts v5 candlesticks + volume, crosshair O/H/L/C/V legend, display timezone (TopBar + Settings, persisted; bars stay UTC, axis/legend/clocks format in the chosen zone), timeframe buttons disabled on channels that aren't intraday_capable (auto-fallback to 1D), one ref-counted WebSocket for live bars
  • Default indicators — registry-backed SMA, EMA, RSI, MACD, BBANDS, ATR, Stochastic, OBV computed on the backend through atabet_data.ta (GET /api/indicators, POST /api/indicators/compute, same gated bar path as /api/bars); searchable picker with ParamSpec-driven settings dialogs; overlays render on the price pane, oscillators in their own panes (level lines, histogram coloring, value badges); debounced ≥1 s recompute on live bar closes; active set persisted in localStorage
  • Custom indicators — Monaco drawer (ƒ Indicator editor) with debounce-lint, Run / Validate / Save / Add to chart; user scripts are META + compute(df, **params) and never exec'd in FastAPI — always python -I worker.py with CPU/AS limits and a 10 s parent timeout; 9-check validation suite (including optional reference vs atabet_data.ta); saved scripts get custom: ids; kind: "signal" outputs render as candle markers (illustrative-only stats strip)
  • Broker — one atabet-trader Engine on a worker thread; paper mode (BacktestGateway + kline CSVs from the Phase 3 cache) on any licensed plan; Futu / IB / QMT simulate+live require Pro; IB Connect needs the official TWS API ibapi 10.48 in the Terminal interpreter (atabet_env — not the PyPI 9.81 package, and not only atabet_trader_env); OrderTicket is Confirm-only; kill switch cancels open orders and blocks new ones until unlock; LIVE badge + statusbar warning on a live gateway; JSONL audit even for paper. CQG is not exposed. A ticket session and a strategy session are mutually exclusive.
  • Strategy session — Load / Save / Start / Stop. Load inspects the folder and checks data (backtest) or config + trading-channel connectivity (simulate/live) without starting Engine. After Load, start/end/kwargs are editable; Save writes atabet_terminal.json in the folder. Start runs the Engine (Arm still required for simulate/live). Candle B/S markers are the focused ticker only; several fills on one bar share one B and one S arrow, and hover lists every order. Done opens a performance sheet (CAGR, Sharpe, Sortino, Calmar, win rate, best/worst period, equity curve). Hide Chart gives the sheet the candle region's space; a watchlist click restores candles. Sample: samples/strategy_session/.
  • AI chatbox — one-turn assistant with token-by-token SSE (Grok / OpenAI-compatible, Gemini, Anthropic), collapsible tool cards, and chart add/remove events. Keys from ATABET_AI_* (QI handoff) or Settings (password field → ~/.atabet/terminal/ai.json). Tools: bars, localcsv file coverage, channels, compute/add/remove indicator. Chart context includes the bound CSV datetime span so a date-range question does not need get_bars. The assistant cannot place orders. Green/red drawer status; Stop cancels the in-flight turn.
  • Quant Intelligence launcher — Settings → Local runtime in the desktop app starts this backend on loopback and opens it in an Atabet window of that app (not the OS browser). The app license and seat are reused (seat: "app"). The selected model key is passed in as ATABET_AI_* to that local process only. The primary workspace folder is passed as ATABET_WORKSPACE_ROOT so the Strategy Load field defaults to it. Closing the Terminal window or Quant Intelligence stops uvicorn. Build frontend/ (npm run build) so / serves the UI; otherwise / is a splash page.
  • i18n — English / 简体中文 / 繁體中文 UI, locale persisted in localStorage

Project Structure

├── atabet_terminal/          # backend package (Cython-protected wheel)
│   ├── main.py               # FastAPI app factory + license lifespan + live hub + /api/health + SPA
│   ├── static_ui.py          # Serve frontend/dist (or a splash) from the backend port
│   ├── live.py               # coalesced per-subscription refresh tasks (Phase 6)
│   ├── config.py             # env-driven settings (data dir, licensing server URL, workspace root)
│   ├── strategy/             # folder inspect + Engine session + MonitorSink adapter (Phase 11)
│   ├── licensing/
│   │   ├── gate.py           # basic/professional plan rules (mirror of entitlement.py)
│   │   └── seats.py          # LicenseManager: validate, heartbeat, activate, logout
│   ├── data/
│   │   ├── demo.py           # deterministic synthetic generator
│   │   ├── store.py          # Parquet cache + timeframe resampling
│   │   ├── atadata.py        # atabet-data adapter: the ONLY path to vendor data
│   │   ├── cache.py          # per-(source, ticker, granularity) real-channel cache
│   │   └── tickers.py        # user phrase → channel-native ticker (search + /api/bars)
│   ├── ai/                   # prompt, provider adapters, tools, one-turn SSE loop
│   ├── broker/               # Engine wall, paper CSV export, live gateway factory, audit JSONL
│   ├── indicators/
│   │   ├── base.py           # pydantic ParamSpec/OutputSpec/IndicatorMeta contract
│   │   ├── ta_registry.py    # thin adapters over atabet_data.ta (SMA/EMA/RSI/MACD/BBANDS/ATR/Stoch/OBV)
│   │   ├── custom_store.py   # saved scripts under <data_dir>/custom/
│   │   ├── sandbox/          # AST checks + isolated worker.py (kept as source in the wheel)
│   │   └── validation/       # 9-check suite vs contract / lookahead / atabet_data.ta
│   └── routers/
│       ├── market.py         # /api/symbols, gated /api/bars, /ws/stream (demo sim + live hub)
│       ├── indicators.py     # /api/indicators (registry + custom:), /api/indicators/compute
│       ├── custom.py         # /api/custom check/run/validate/save
│       ├── license.py        # /api/license/status, /api/license/activate
│       ├── channels.py       # /api/channels (operation matrix from the catalog)
│       ├── broker.py         # /api/broker session, orders, positions, kill
│       ├── strategy.py       # /api/strategy load/save/start/stop + /ws/strategy
│       └── chat.py           # /api/chat SSE, status, Settings key, stop
├── frontend/                 # React 18 + Vite + TypeScript (dev proxy -> :8000)
│   └── src/
│       ├── layout/           # Shell grid + beta banner, TopBar (search/channels/timezone/locale/LIVE/kill/settings), StatusBar
│       ├── chat/             # ChatDrawer + tool cards + SettingsModal
│       ├── broker/           # OrderTicket (Confirm only) + BrokerPanel
│       ├── strategy/         # StrategyPanel (lazy-loaded; Load/Save/Start/Stop + performance)
│       ├── chart/            # ChartRegion + seriesManager (LWC v5 panes + Deal markers + equity)
│       ├── editor/           # Monaco drawer + validation report (lazy-loaded)
│       ├── api/              # typed REST client + ref-counted stream client
│       ├── lib/              # tickerMap + display timezone helpers
│       └── i18n.ts           # en / zh-CN / zh-TW strings
├── tests/                    # pytest suite (mock licensing + fake channels + TA + live hub + sandbox + paper broker + mock chat + strategy session)
├── samples/                  # run_terminal.py + custom_rsi.py + strategy_session/ (DemoStrategy folder + kline)
├── scripts/smoke.sh          # end-to-end smoke (CI-safe, no license server)
├── environment.yml           # conda env: atabet_terminal_env
├── pyproject.toml            # deps, pytest/ruff/mypy/cibuildwheel config
├── setup.py + build_wheel.py # Cython-compiled, source-protected wheels
└── .github/workflows/        # tests on push; wheels + publish on "[build ci]"

Setup

Quant Intelligence users: create the combined stack with ../atabet-quant-intelligence/environment.yml (atabet_env) instead of a terminal-only env.

conda env create -f environment.yml
conda activate atabet_terminal_env

Run the backend:

# From the repo root (dev runs use the source tree; pip install -e . also works
# but triggers Cython compilation of the package)
ATABET_TERMINAL_DATA_DIR=sample_data python samples/run_terminal.py
# -> http://127.0.0.1:8000  (uvicorn atabet_terminal.main:app)

Run the frontend (in a second terminal):

cd frontend
npm install
npm run dev
# -> http://localhost:5173  (Vite proxies /api and /ws to the backend)

On macOS the Vite dev server binds IPv6 (http://localhost:5173), while the backend binds 127.0.0.1:8000 — both defaults work with the bundled proxy config.

Production UI on the backend port (Quant Intelligence launcher):

cd frontend && npm install && npm run build
# uvicorn then serves frontend/dist at GET http://127.0.0.1:<port>/

From the Quant Intelligence desktop app: Settings → Local runtime → Atabet Terminal. Point it at this checkout, use a Python that can import atabet_terminal (the combined atabet_env from Quant Intelligence environment.yml, or atabet_terminal_env), then Open Terminal. That process receives this install's license JWT, device/session seat, the selected model's API key as ATABET_AI_*, and the open workspace as ATABET_WORKSPACE_ROOT. Closing Quant Intelligence stops uvicorn.

Strategy folder

Write a BaseStrategy in Quant Intelligence (or any local folder). The folder must contain atabet_trader_config.py with DATA_PATH["kline"] pointing at the parent of K_1D / K_1M, plus one BaseStrategy subclass (in *strategy*.py, or named by optional terminal_session.py). Daily trees use K_1D/{code}/ohlcv.csv; 1-minute trees use K_1M/{code}/YYYY-MM-DD.csv (TIME_STEP=60000). In the Strategy panel: Load prepares and validates (it does not start); edit start/end/other kwargs and Save to write atabet_terminal.json; Start runs the Engine; Stop ends it. The watchlist becomes that folder's localcsv universe. The chart then uses that tree's last 500 bars (4000 days on 1D) instead of a window ending now, and 1m/1D pick K_1M/K_1D under the same kline root. A running backtest keeps the focused candles and overlays B/S markers for that ticker (hover lists every fill on the bar). Done opens performance stats and the equity curve; Hide Chart expands that sheet, and clicking a watchlist ticker restores the candles. Arm + a Pro license switches the same class onto Futu / IB / QMT (terminal_session.live_source pre-selects the gateway on first Load). Backtest mode shows only the Backtest gateway; Futu / IB / QMT appear when Mode is Simulate or Live. Simulate/Live runs from now until Stop (or an optional Auto-stop clock in the display timezone). Start/End stay visible but greyed (backtest-only) and are not written from that clock. Mode and Gateway stay editable except while Starting/Running — click Stop first. After a run finishes, the strategy broker session is released so the Broker strip unlocks. Changing Mode or Gateway greys Start until you Load again (that re-runs IB/Futu/QMT checks). Stop, then Start in Simulate/Live, reuses that folder; BarEventEngine.run starts Engine so the sqlite persist thread is not launched twice. Strategies are trusted author code — they are not run through the custom-indicator sandbox. See samples/strategy_session/ and Decision #55. Without terminal_session.py, the first BaseStrategy in alphabetically first *strategy*.py is used. A 1-minute example for QMT, Futu, and IB (the clock picks 600519.SH, HK.00700 / US.AAPL, or weekend BTC.USD) lives at ../atabet-demo/demo/single_ticker_intraday_strategy.

Environment variables

Variable Purpose
ATABET_TERMINAL_DATA_DIR Directory for the bar cache (default sample_data)
LICENSING_SERVER_URL Licensing server base URL (default http://39.101.65.167:5001). The QI launcher copies its LICENSE_SERVER_URL into this name.
ATABET_TERMINAL_FRONTEND_DIST Override path to the Vite frontend/dist folder (tests)
ATABET_TERMINAL_LICENSE_FILE Where the standalone license key is kept (default ~/.atabet/terminal/license.json)
ATABET_DATA_TOKEN / ATABET_TRADER_TOKEN License JWT handed off by the Quant Intelligence app launcher (selects "app" seat)
ATABET_DEVICE_NAME / ATABET_CLIENT_ID Device identity for the seat (default: hostname)
ATABET_SESSION_TOKEN Handed-off session token — shares the app's seat instead of taking a new one
ATABET_SESSION_STORE atabet-token session store (default ~/.atabet/session.json)
ATABET_TERMINAL_LIVE_INTRADAY_POLL Live hub poll seconds for intraday charts (default 2, range 1–5)
ATABET_TERMINAL_LIVE_DAILY_POLL Live hub poll seconds for daily charts (default 45, range 30–60)
ATABET_FUTU_HOST / _PORT / _ACCOUNT / _PWD_UNLOCK Futu OpenD overlays for GATEWAYS['Futu']
ATABET_IB_HOST / _PORT / _CLIENTID / _ACCOUNT IB Gateway / TWS overlays
ATABET_QMT_REDIS_HOST / _PORT / _PASSWORD / _DB / ATABET_QMT_KEY_PREFIX Big QMT Redis bridge (names match atabet-trader GATEWAYS['Qmt']; default prefix atabet:qmt)
ATABET_AI_PROVIDER / _API_KEY / _MODEL / _BASE_URL QI AI handoff (wins over Settings). Provider ids match QI: google, openai, anthropic, deepseek, kimi, minimax, qwen, huggingface, grok
ATABET_WORKSPACE_ROOT QI primary workspace folder. The Strategy Load dialog defaults to this path. Custom env cannot keep a leftover value; the launcher overwrites it.
ATABET_TERMINAL_AI_FILE Standalone AI key file (default ~/.atabet/terminal/ai.json)

Without any token the terminal boots in demo mode: no seat is taken, and any request for a real channel answers 402 with the subscribe/upgrade message. Standalone users enter their key via /api/license/activate; the terminal then owns its own seat and frees it on clean shutdown.

Standalone AI keys are entered in Settings (password field). Env handoff always wins.

Tests

python -m pytest tests/ -q        # no network needed
sh scripts/smoke.sh               # end-to-end: boot -> /api/bars -> RSI compute -> good_rsi validate -> broker gateways -> chat status -> stop

Real-channel requests in tests run against a FakeChannelClient that speaks the exact atabet-data frame contract (multi-index FLDS frames), so the adapter path (request → gate → cache → resample → rows, including timezone conversion) is verified offline. Licensed live smokes (Yahoo AAPL daily, Futu HK.00700 with OpenD) are manual steps from the build guide.

# Manual live smoke (needs a license and a channel, e.g. yahoo + yfinance):
ATABET_DATA_TOKEN=<jwt> ATABET_TERMINAL_DATA_DIR=sample_data \
  python samples/run_terminal.py
# then: curl 'http://127.0.0.1:8000/api/bars?symbol=AAPL&source=yahoo&timeframe=1D'

# Paper broker (needs a license + atabet-trader from local source):
#   pip install -e ../atabet-trader
# then connect Backtest in the Broker panel, Confirm a size-1 market buy.
# Manual Futu simulate smoke (Pro token, OpenD running, market hours):
#   ATABET_DATA_TOKEN=<jwt> ATABET_FUTU_HOST=127.0.0.1 ATABET_FUTU_PORT=11111 \
#     python samples/run_terminal.py
# then: Connect Futu / simulate on HK.00700, Confirm size 1 (one board lot =
#   100 shares), Kill a resting far-limit. US names may be unsupported on
#   some OpenD simulate accounts.

# Manual Gemini chat smoke (needs ATABET_AI_API_KEY, chart on AAPL/1D):
#   ATABET_AI_PROVIDER=google ATABET_AI_API_KEY=<key> \
#     python samples/run_terminal.py
# then ask "what's this chart" and "add RSI(14)" — the RSI pane should appear.

Quality gates

  • ruff check atabet_terminal tests and mypy (strict) on the package
  • Frontend: npm run build runs tsc + a production build (Lightweight Charts 5 via addSeries)
  • Wheels: build all three platforms with a commit message containing [build ci] (GitHub Actions), or locally via build_wheel.py

License

Atabet Terminal is licensed under the Quant Intelligence license (com.atabet.chat), validated against the Atabet licensing server through atabet-token — the same token and seat used by atabet-data and atabet-trader. Launched from the Quant Intelligence app, the terminal shares the app's seat (no second device seat, no logout on exit); launched standalone, it activates with the license key and frees its seat on shutdown. Basic covers yahoo / localcsv / tushare and backtesting; Professional adds futu / ib / qmt data and the live broker gateways.

Metadata

Release files for atabet-terminal 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Incomplete provenance

12 of 20 files were uploaded without provenance metadata.

We recommend further investigation before installing these files. View details.

Built distributions (wheels)

Table of built distributions (wheels) for atabet-terminal 0.1.1
File Actions
atabet_terminal-0.1.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for atabet_terminal-0.1.1-cp313-cp313-win_amd64.whl
atabet_terminal-0.1.1-cp313-cp313-win32.whl CPython 3.13 CPython 3.13 Windows x86-32 Details for atabet_terminal-0.1.1-cp313-cp313-win32.whl
atabet_terminal-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details for atabet_terminal-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
atabet_terminal-0.1.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.13 CPython 3.13 Linux glibc 2.5+ x86-32, Linux glibc 2.17+ x86-32 Details for atabet_terminal-0.1.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
atabet_terminal-0.1.1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for atabet_terminal-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
atabet_terminal-0.1.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for atabet_terminal-0.1.1-cp312-cp312-win_amd64.whl
atabet_terminal-0.1.1-cp312-cp312-win32.whl CPython 3.12 CPython 3.12 Windows x86-32 Details for atabet_terminal-0.1.1-cp312-cp312-win32.whl
atabet_terminal-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details for atabet_terminal-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
atabet_terminal-0.1.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.12 CPython 3.12 Linux glibc 2.5+ x86-32, Linux glibc 2.17+ x86-32 Details for atabet_terminal-0.1.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
atabet_terminal-0.1.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for atabet_terminal-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
atabet_terminal-0.1.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for atabet_terminal-0.1.1-cp311-cp311-win_amd64.whl
atabet_terminal-0.1.1-cp311-cp311-win32.whl CPython 3.11 CPython 3.11 Windows x86-32 Details for atabet_terminal-0.1.1-cp311-cp311-win32.whl
atabet_terminal-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details for atabet_terminal-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
atabet_terminal-0.1.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.11 CPython 3.11 Linux glibc 2.5+ x86-32, Linux glibc 2.17+ x86-32 Details for atabet_terminal-0.1.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
atabet_terminal-0.1.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for atabet_terminal-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
atabet_terminal-0.1.1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for atabet_terminal-0.1.1-cp310-cp310-win_amd64.whl
atabet_terminal-0.1.1-cp310-cp310-win32.whl CPython 3.10 CPython 3.10 Windows x86-32 Details for atabet_terminal-0.1.1-cp310-cp310-win32.whl
atabet_terminal-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details for atabet_terminal-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
atabet_terminal-0.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.10 CPython 3.10 Linux glibc 2.5+ x86-32, Linux glibc 2.17+ x86-32 Details for atabet_terminal-0.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
atabet_terminal-0.1.1-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for atabet_terminal-0.1.1-cp310-cp310-macosx_11_0_arm64.whl

Total release size: 118.9 MB

Release files / atabet_terminal-0.1.1-cp313-cp313-win_amd64.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.

We recommend further investigation before installing this file. View details.

Download URL atabet_terminal-0.1.1-cp313-cp313-win_amd64.whl
Size 1.9 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
4cda1665c01aa6829d297f85ee8e81c60f880baf1cdfe120e280a52a6d1ca810
BLAKE2b-256 checksum
How to use checksums
c2fa62a749b32266142bfec3d01c61cbb1574fcc01f78fc70177594fa1542b4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / atabet_terminal-0.1.1-cp313-cp313-win32.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.

We recommend further investigation before installing this file. View details.

Download URL atabet_terminal-0.1.1-cp313-cp313-win32.whl
Size 1.6 MB
Tags CPython 3.13 Windows x86-32
SHA-256 checksum
How to use checksums
28dc50a6ec49ea2fdf478cfd8121473b83c4c7bdd060248b241a620f1cd2c97a
BLAKE2b-256 checksum
How to use checksums
5ae46acf8b633139958bc78ca1409ae03106a2bb79c6be4f5581f33e7453bfd5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / atabet_terminal-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.

We recommend further investigation before installing this file. View details.

Download URL atabet_terminal-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 13.0 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
7f3fbef370797ac76b8f83239d6e2c9c91ada187d44a5be1bdf97f5ca9cbfe4c
BLAKE2b-256 checksum
How to use checksums
22e02e073cf09eef885528deb6f709fd69ecc004b2514e0809b4cb09216d2b4d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 25, 2026.

Transparency log

Release files / atabet_terminal-0.1.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.

We recommend further investigation before installing this file. View details.

Download URL atabet_terminal-0.1.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 12.3 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
9fb6bb356a3ab72e3f1bbe3b2bf181bc48aae9d4eed295bac1378d69b2de1339
BLAKE2b-256 checksum
How to use checksums
42a67a4e753bad4b46e694ce0f2ee1600a80f172e3974c169c92931f5a0645ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 25, 2026.

Transparency log

Release files / atabet_terminal-0.1.1-cp313-cp313-macosx_11_0_arm64.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.

We recommend further investigation before installing this file. View details.

Download URL atabet_terminal-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
Size 2.1 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
bd1cce8f11b7e6aaffbad35b32cf90d1b308404130cb29fea361cab81ecdd2b6
BLAKE2b-256 checksum
How to use checksums
c2f9d19a310d48b7ffeeb676658e1b1dae0e7eddc696450b5956c317a1e3cef1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.0

Release files / atabet_terminal-0.1.1-cp312-cp312-win_amd64.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.

We recommend further investigation before installing this file. View details.

Download URL atabet_terminal-0.1.1-cp312-cp312-win_amd64.whl
Size 1.9 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
6b51887d84f71c52b83927ba9ccb80207b6de6d0e58a09b74984e28be4402ed5
BLAKE2b-256 checksum
How to use checksums
c35677bc927216fc0605ab5f34cc2729e842ac90ed8618382f281bca7d7c7150
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / atabet_terminal-0.1.1-cp312-cp312-win32.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.

We recommend further investigation before installing this file. View details.

Download URL atabet_terminal-0.1.1-cp312-cp312-win32.whl
Size 1.6 MB
Tags CPython 3.12 Windows x86-32
SHA-256 checksum
How to use checksums
e52bfc401b965ebb4eb8273dcb263aeecda0c02e87095ca5ff67c77a48f0bbed
BLAKE2b-256 checksum
How to use checksums
6c386c9073550770301eef9f3e3cb5341779c33455206a822c3705e5ba6a63df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / atabet_terminal-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.

We recommend further investigation before installing this file. View details.

Download URL atabet_terminal-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 13.1 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
5f8679b32a882071cc80334e4d9fe3d0bc8d205b2d26c2253a8d3c406af14fab
BLAKE2b-256 checksum
How to use checksums
8e700c7fbfe24b85ffd21e7606057ea10249c53cf34218269e6d053a3513ac63
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 25, 2026.

Transparency log

Release files / atabet_terminal-0.1.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.

We recommend further investigation before installing this file. View details.

Download URL atabet_terminal-0.1.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 12.5 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
74fe7dd5958be916916fe73e6a308f839acf47c552147609db1ab3c29bc63179
BLAKE2b-256 checksum
How to use checksums
6a7da32002ca7c930db858b213cf9360a7bfe34c73806d492def083a60f5f293
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 25, 2026.

Transparency log

Release files / atabet_terminal-0.1.1-cp312-cp312-macosx_11_0_arm64.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.

We recommend further investigation before installing this file. View details.

Download URL atabet_terminal-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
Size 2.1 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5bfc8a091b5d5d6fd8a247e31e42345afb490b7a7c9863f7f8230b4c79bed7fb
BLAKE2b-256 checksum
How to use checksums
bfaa010b39d1d6a314fc6e7ae4c5db9ddf33b05c9ea2f66fb8cd118520d968ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.0

Release files / atabet_terminal-0.1.1-cp311-cp311-win_amd64.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.

We recommend further investigation before installing this file. View details.

Download URL atabet_terminal-0.1.1-cp311-cp311-win_amd64.whl
Size 1.9 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
9b920e5158e8e382a2556ce1a8b3bc9efdb06c486e093f2b195647fae0f5be56
BLAKE2b-256 checksum
How to use checksums
1cb0e3a7edc39cb41b7d7d56e8190d8d12965767be11c6b1290e77cd2b22040f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / atabet_terminal-0.1.1-cp311-cp311-win32.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.

We recommend further investigation before installing this file. View details.

Download URL atabet_terminal-0.1.1-cp311-cp311-win32.whl
Size 1.7 MB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
7fe6c120dfc5d280378688d1e8358e376518804166a77823f0dd7fafb13618ef
BLAKE2b-256 checksum
How to use checksums
ae56e7d81447961f1c5a30526ebdf1cb6455ab8b9fbc8bb35edd9caaa68856e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / atabet_terminal-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.

We recommend further investigation before installing this file. View details.

Download URL atabet_terminal-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 11.8 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
5723fb2b2b316548b4dbfad3b13d91958b418af2be168ea4b460dfcfd077b4cb
BLAKE2b-256 checksum
How to use checksums
a72b518e42cd7dc4a74246bcb0628c559b970cd1a1508a51818d5e07284478ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 25, 2026.

Transparency log

Release files / atabet_terminal-0.1.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.

We recommend further investigation before installing this file. View details.

Download URL atabet_terminal-0.1.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 11.3 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
876ca2f6ba469d01262c0b9083f12ace66cb2c71e738bb2dcc861090e80e750b
BLAKE2b-256 checksum
How to use checksums
9b798169e6e97600cf51aaecdf9e5361dc89d68b4b43cba8606ebc6e79305794
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 25, 2026.

Transparency log

Release files / atabet_terminal-0.1.1-cp311-cp311-macosx_11_0_arm64.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.

We recommend further investigation before installing this file. View details.

Download URL atabet_terminal-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Size 2.1 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ac7d8881158b78c3a4d484a0cebf3aa6fe5c098274228e4e9ab58f4ffdd9cb6e
BLAKE2b-256 checksum
How to use checksums
3ac7c5e8a6f00f65bd19a7cefad8c9c883998080a8a3a01e3cadc8295a974f8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.0

Release files / atabet_terminal-0.1.1-cp310-cp310-win_amd64.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.

We recommend further investigation before installing this file. View details.

Download URL atabet_terminal-0.1.1-cp310-cp310-win_amd64.whl
Size 1.9 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
1d9021efda9270d717cbbaae4af115685b733486760c651cdcd7c04c3d31eeda
BLAKE2b-256 checksum
How to use checksums
8e587a886e2e7218d5d50fd4819f66663c28782f140da580ff05e509d4cd7352
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / atabet_terminal-0.1.1-cp310-cp310-win32.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.

We recommend further investigation before installing this file. View details.

Download URL atabet_terminal-0.1.1-cp310-cp310-win32.whl
Size 1.7 MB
Tags CPython 3.10 Windows x86-32
SHA-256 checksum
How to use checksums
a97e7dede2c5f35282e15afad3110ef87454d663179a620eda6d9fb91eb968ac
BLAKE2b-256 checksum
How to use checksums
d68d89600927737637276325286268f74b398097ab406c777dca23c3bd46dbd2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / atabet_terminal-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.

We recommend further investigation before installing this file. View details.

Download URL atabet_terminal-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 11.3 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
844632385046b64c24ffa3e6217e50e09a593f959c660cb897988f1eb5547e42
BLAKE2b-256 checksum
How to use checksums
af5079ca9e45dc3aae03191fe89ffc5e137c2102f78e789be4109c82cbed0644
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 25, 2026.

Transparency log

Release files / atabet_terminal-0.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.

We recommend further investigation before installing this file. View details.

Download URL atabet_terminal-0.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 10.9 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
89fddb01b500fa0b72cf0bde103b54ba70aaea446d9577196ad95e8e0bfe3afa
BLAKE2b-256 checksum
How to use checksums
889c19b198f6f5c7e036e3b4b970943cf276ddfa786c472af06dd6e9e0641eec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 25, 2026.

Transparency log

Release files / atabet_terminal-0.1.1-cp310-cp310-macosx_11_0_arm64.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.

We recommend further investigation before installing this file. View details.

Download URL atabet_terminal-0.1.1-cp310-cp310-macosx_11_0_arm64.whl
Size 2.2 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
82ac939dee9c0e6c715bb73439df78bd1db306b89541c9762f51f0a5a13c732d
BLAKE2b-256 checksum
How to use checksums
85a05dcfdf7ef3429bf1a7986c509622e1fbe22a4a6b7d6539db52172004f39b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.0

Security for atabet-terminal 0.1.1

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.

Incomplete provenance

12 of 20 files were uploaded without provenance metadata.

Files with provenance 8 / 20
Files without provenance 12 / 20
Select from 20 files

Attestations for atabet_terminal-0.1.1-cp313-cp313-win_amd64.whl

This file was uploaded without provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page