Open sourceMITruns on localhost

The open-source, AI-native terminal for traders.

Ask a question. Get a live workspace of charts, tables and option chains, and an answer that points at them. Runs on your machine, with your keys, on data sources anyone can add.

  • MIT licensed
  • macOS · Windows · Linux
  • No accounts, no backend, no telemetry
  • Any route · 24 recipes · 9 presets
An Open Terminal workspace named Mag 7 Valuation: the seven largest tech stocks rebased over two years as seven coloured lines, quarterly EPS with surprises, current multiples and Street price targets, under a ticker strip of index levels.
A workspace the agent built: the Mag 7 over two years, EPS, multiples, Street targetsreal screenshot · 1440 × 900

Cursor made the code editor conversational without taking the editor away. Open Terminal does the same for the trading terminal.

The prompt builds and rewrites the workspace, and the workspace stays a real terminal: every widget is a query you can open, edit and re-run by hand.

macOS

curl -fsSL https://terminal.spova.ai/install | sh

Recommended Paste it into Terminal. It puts Open Terminal in Applications and opens it, with no security prompt.

Or the .dmg Apple silicon Intel

The app is not signed with an Apple Developer ID yet, so the first time you open it from the .dmg, macOS asks you to confirm: System Settings → Privacy & Security → Open Anyway.

Windows

Download for Windows .exe · x64 · Windows 10 and 11

The setup is not signed with a code-signing certificate yet, so SmartScreen says “Windows protected your PC”: choose More info → Run anyway.

Or install it from PowerShell, with no prompt:

irm https://terminal.spova.ai/install.ps1 | iex

Linux

curl -fsSL https://terminal.spova.ai/install | sh

Installs the AppImage, adds Open Terminal to your app menu, and an openterminal command.

The AppImage mounts itself with FUSE (fusermount, from fuse3); the installer tells you if it is missing.

For developers: npx openterminal runs it headless, in your browser on npm soon

01 Try asking

One question in, a working terminal out.

Six prompts we ran end to end on a fresh install with Claude Opus 5.5 on 2026-10-19. Every screenshot is the workspace that prompt built, with its reply beside it, and every figure in every reply was checked against the data.

Compare the neoclouds
The Neocloud comparison workspace: CoreWeave, Nebius, IREN and Applied Digital rebased over six months, a valuation and leverage table, analyst targets, a side-by-side fundamentals pivot, news and today's close, with the reply on the right citing each widget.
25 of 25 figures verified · 6 widgets · 8 steps · 54 sClaude Opus 5.5 · 2026-10-19
TSLA reports soon. How did it react to the last few reports and what's expected this time?
The TSLA earnings setup workspace: two years of daily candles with earnings markers and the implied-move range, past earnings reactions, the implied move from the at-the-money straddle, analyst expectations, the next report and 30-day volatility, with the reply on the right.
21 of 21 figures verified · 7 widgets · 9 steps · 55 sClaude Opus 5.5 · 2026-10-19
Correlation of the Mag 7 over 6 months
The Mag 7 correlation workspace: a seven by seven heatmap of daily-return correlations computed with pandas, the pairs ranked, the average correlation per name beside its six-month return, and the seven rebased, with the reply on the right.
13 of 13 figures verified · 4 widgets · 5 steps · 31 sClaude Opus 5.5 · 2026-10-19
TSLA puts for next Friday, what's IV like and where is the open interest?
The TSLA puts workspace: the put chain for the October 23 expiration centred on the at-the-money strike, open interest and volume by strike, the implied move, 30-day volatility, daily candles with earnings markers and news, with the reply on the right.
30 of 30 figures verified · 6 widgets · 8 steps · 46 sClaude Opus 5.5 · 2026-10-19
Backtest a 50/200 SMA cross on SPY since 2020
The SPY SMA cross backtest workspace: the strategy's equity curve against buy and hold since 2020, a stats table with total return and CAGR, the four trades, and SPY with its 50 and 200-day averages, all computed with pandas, with the reply on the right.
15 of 15 figures verified · 4 widgets · 5 steps · 51 sClaude Opus 5.5 · 2026-10-19
RSI and MACD on AMD
The AMD RSI and MACD workspace: daily candles with 50 and 200-day averages over RSI and MACD panes, RSI and MACD histogram cards, the AMD quote and news, with the reply on the right.
11 of 11 figures verified · 5 widgets · 5 steps · 26 sClaude Opus 5.5 · 2026-10-19

02 Why

A real terminal that answers back.

  • ask

    Ask, don't click.

    “Is NVDA's drop today news or just the market?” becomes four live widgets and a two-sentence diagnosis. A follow-up rewrites the workspace. You never assemble the answer from eight tabs again.

  • verify

    Every number is traceable.

    The agent cannot type a price. It can only run queries, and the reply links each claim to the widget that shows it. Figures in the reply are checked against the data it saw.

  • local

    Open and local.

    MIT licensed. One process on localhost plus your browser. No accounts, no hosted backend, no telemetry. Keys never leave the machine.

  • routes

    Any route, not a fixed catalog.

    Connectors publish their routes as descriptors (OpenBB generates 800+ from its own OpenAPI document); the agent searches them, runs them, and derives new data from them with pandas. Twenty-four recipes cover the common questions.

  • models

    Model-agnostic.

    Anthropic or OpenAI through the Vercel AI SDK. The default is Claude Opus 5.5; change one line of config to swap it.

  • keys

    Works before you add a key.

    Prices, charts, search, options and fundamentals come from Yahoo on first run. Add a free Finnhub key for news, or point it at a local OpenBB Platform for dozens of providers.

03 How it works

Four tools. Every figure checked.

The agent has four tools: find_route searches the catalog of every connector's routes, query runs a recipe or a route, transform runs pandas over data it already has, set_workspace replaces the widgets.

  1. You type a prompt.

    A question, a ticker, a follow-up. Every prompt rewrites the workspace it is asked in, and every workspace is kept.

  2. Queries go to the registry.

    A recipe names its routes in order (OpenBB first, Yahoo as the fallback); a route is one endpoint of one connector, its params validated against the connector's descriptor. Results come back as typed columns and rows, annotated with units and cached per route.

  3. The agent reads a preview.

    The columns with their units, the first rows, and per-symbol stats. Numbers in the reply must come from here, and the server verifies them.

  4. It builds the workspace and answers.

    Four to six widgets, each rendered by a preset, then a short reply that begins with the answer and links to the widgets it drew on. Widgets keep polling; ask a follow-up and the workspace is rewritten.

Stepsone real run, 2026-10-19

TSLA reports soon. How did it react to the last few reports and what's expected this time?

  1. queryrecipe volatility symbols=TSLA · 1 row5.8 s
  2. queryrecipe quote symbols=TSLA · 1 row6.0 s
  3. queryrecipe eps_history symbols=TSLA limit=8 · 8 rows6.3 s
  4. queryrecipe earnings from=2026-10-12 to=2026-12-18 · 1 row6.6 s
  5. queryrecipe estimates symbols=TSLA · 1 row7.5 s
  6. queryrecipe options expiration=2026-10-23 strikes=10 · 40 rows21.0 s
  7. transformpandas over price, eps · 7 rows21.1 s
  8. transformpandas over the chain · 1 row32.1 s
  9. set_workspace7 widgets48.1 s
reply · 21 of 21 figures verified against the data · 55.0 s

Connectors 3 in the box

  • openbbno key for the keyless providersEvery GET route of your local OpenBB Platform API, generated from its OpenAPI document (834 on OpenBB 5.0.0).
  • yahoono keySearch, quotes, charts, option chains and fundamentals.
  • finnhubfree keyQuotes, company news and the earnings calendar.

A connector is one file: descriptors() plus call().

Recipes 24

  • search
  • quote
  • ohlcv
  • news
  • earnings
  • profile
  • metrics
  • financials
  • estimates
  • eps_history
  • dividends
  • insiders
  • institutions
  • short_interest
  • options
  • volatility
  • calendar
  • ipos
  • movers
  • holdings
  • macro
  • yield_curve
  • index
  • screener

Saved queries, as data. Promote any widget to your own.

Presets 9

  • price
  • compare
  • curve
  • indicator
  • table
  • stat
  • facts
  • chain
  • heatmap

Any data whose shape fits renders: candles, rebased lines, yield curves, option chains, heatmaps.

04 Extend

Add a data source in one file.

The whole plugin surface is one function. Register the connector in ~/.openterminal/config.yml and its routes are in the catalog on the next prompt. Tests run against recorded fixtures, never the network.

  • Models. Any Anthropic or OpenAI model id. The agent prompt is plain text.
  • Recipes and annotations. YAML files. A new question that one route answers is a recipe, not code.
  • Presets. A pure function from view options to panes and layers.

Read the connector guide ↗

connectors/shape/src/index.ts
import { z } from 'zod'
import { defineConnector, inferFrame, parseDescriptors } from '@openterminal/core'
import descriptors from './descriptors.json' with { type: 'json' }

export default defineConnector({
  name: 'shape',
  config: z.object({ apiKey: z.string().min(1) }),
  descriptors: () => parseDescriptors(descriptors),
  call: async (route, params, ctx) => {
    const url = `https://api.shape.dev/${route}?symbol=${params.symbol}`
    const rows = (await ctx.http.get(url, {
      headers: { 'X-Token': ctx.config.apiKey },
      signal: ctx.signal,
    })) as Record<string, unknown>[]
    return inferFrame(rows, { connector: 'shape' }, {
      descriptor: descriptors.find((d) => d.route === route),
    })
  },
})
05 Compare

How it compares.

Open Terminal Bloomberg ChatGPT / Perplexity OpenBB Instinct
Ask a question, get live views yes no no partly yes
Every number traceable to data yes yes no yes unclear
Open source yes (MIT) no no partly no
Runs locally, your keys yes no no partly no
Add a data source yourself yes no no yes no
Price free ~$25k/yr $20/mo free + paid waitlist

From the project README. Research and monitoring only: Open Terminal places no orders.

06 Install

Run it on your machine.

Open Terminal is a desktop app for macOS, Windows and Linux. It is open source and not code-signed yet (signing takes paid Apple and Microsoft certificates), so every release publishes its SHA-256 checksums, and the install commands check them for you.

  1. Install

    macOS

    curl -fsSL https://terminal.spova.ai/install | sh

    Recommended Paste it into Terminal. It puts Open Terminal in Applications and opens it, with no security prompt.

    Or the .dmg Apple silicon Intel

    The app is not signed with an Apple Developer ID yet, so the first time you open it from the .dmg, macOS asks you to confirm: System Settings → Privacy & Security → Open Anyway.

    Windows

    Download for Windows .exe · x64 · Windows 10 and 11

    The setup is not signed with a code-signing certificate yet, so SmartScreen says “Windows protected your PC”: choose More info → Run anyway.

    Or install it from PowerShell, with no prompt:

    irm https://terminal.spova.ai/install.ps1 | iex

    Linux

    curl -fsSL https://terminal.spova.ai/install | sh

    Installs the AppImage, adds Open Terminal to your app menu, and an openterminal command.

    The AppImage mounts itself with FUSE (fusermount, from fuse3); the installer tells you if it is missing.

  2. Ask it something

    Open it from Applications, the Start menu or your app menu (on Linux, openterminal works too), then type a ticker or a question. It works with no keys: quotes, charts, search, option chains and fundamentals come from Yahoo through the built-in yahoo connector.

  3. Add an LLM key

    Write it to ~/.openterminal/config.yml (or set ANTHROPIC_API_KEY or OPENAI_API_KEY when you start it from a terminal). Without one you can still build workspaces by hand in the widget editor.

    ~/.openterminal/config.yml
    llm:
      provider: anthropic           # or openai
      model: claude-opus-5-5
      apiKey: sk-ant-...
  4. Add news optional

    Paste a free Finnhub key on the Data page in the app. Finnhub also answers quotes and the earnings calendar, so tables survive a Yahoo outage.

  5. Add everything else optional

    Run OpenBB Platform on your machine (Python 3.10 to 3.12). When its API answers at 127.0.0.1:6900, its 800+ routes join the catalog and every recipe routes to it first.

    shell
    pip install "openbb[routers]" openbb-yfinance
    openbb-api
  • Runs onmacOS 11+, Windows 10+ and Linux, x64 or arm64
  • SignedNot yet. Open source, with SHA-256 checksums on every release
  • Your data~/.openterminal: config, workspaces, recipes, the frame cache
  • UpdateUpdate in the app, or run the install command again
  • LicenseMIT
  • Full guideQuick start in the README ↗

Other ways

  • Every download

    Each release has a .dmg and a .zip for macOS, the setup .exe for Windows, an AppImage and a .deb for Linux, and SHA256SUMS. To check a file you downloaded:

    shell · in the download folder
    shasum -a 256 -c SHA256SUMS --ignore-missing

    GitHub Releases ↗

  • For developers on npm soon

    npx openterminal

    Headless: the server starts and opens http://localhost:4242 in your browser. Needs Node 22 or newer.

  • From source

    shell · Node 22 and pnpm
    git clone https://github.com/spovalova/openterminal.git
    cd openterminal
    pnpm install
    pnpm dev

    The server starts on :4242, the app on http://localhost:5173.

Your terminal. Your keys. Your machine.

Free and open source under the MIT license, for macOS, Windows and Linux. Install it, ask it a question, and open any widget to see the query behind it.