
vike-cli
io.github.vike-ioPublished by GitHub account vike-iov0.1.0Updated Oct 24, 2026
Backtest, validate and execute trading strategies behind a mandatory two-call preview gate.
The publisher's own server: Vike Data API
Overview
Lets an assistant backtest, validate and execute trading strategies through a local CLI, with a mandatory two-call preview gate before any live order.
- What you can do
- The vike-cli MCP server exposes a Rust trading platform to an MCP client: a bar/tick backtest and research harness with parameter sweeps and optimizers, a live execution daemon that mounts a venue and runs a strategy, a Parquet/DataFusion history store and recorder, and bridges to fourteen venues including binance, bybit, okx, alpaca, oanda, ibkr and polymarket. Trading actions pass through a mandatory two-call preview gate, and bundled agent skills cover backtesting, strategy authoring, data loading and trading on a node.
- When to use it
- Worth adding when an assistant should research, backtest or run trading strategies on the user's own machine, or drive a vike node through the preview gate. Not useful for someone who only wants market data or charts without the platform installed.
- Requirements
- Runs as a local stdio process on desktop only; no remote endpoint and no declared environment variables or headers. Install the vike-cli binary from the release or via cargo binstall, or use the container images. A vike-datahub server must be running for every history read, including local backtests; a fresh install has no market data until it is seeded. Venue credentials live in the local settings database.
Installation
In SourceWeft
- Open vike-cli in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
vike
A Rust trading platform: a live execution core, a backtest and research harness, a desktop charting shell, and bridges to fourteen venues.
This repository is a source mirror. It carries the code and nothing else — no CI workflows, no operator runbooks, no history. Each publish is one commit. The development repository is private; what you see here is what the released binaries are built from.
What is in the box
Running it
Container images carry every headless tool as one binary with a symlink per tool:
The command-line tool installs from the release without a toolchain (Linux and Windows; any other
target compiles from the clone — crates/vike-cli/Cargo.toml's [package.metadata.binstall] says
why):
On Windows with no Rust at all, download the executable from the release — it needs nothing installed and no toolchain:
Verify it against the release's own manifest before running it:
⚠ Neither path updates itself. cargo binstall records the install under a crate version that never
moves, so a re-install needs --force; a downloaded executable is replaced by downloading it again.
⚠ On Windows the standalone backtest ENGINE is not published, so data hist fetch --source demo|starter
and backtest run --local are unavailable until you build one. The remote path needs no engine:
vike-cli backtest run --addr HOST:PORT runs on a vike-datahub server instead.
From source:
For an agent (Claude Code, Cursor, any MCP client), the skills install straight from this repo:
A fresh install has no market data — this fixes that
The datahub line is not optional: every history READ goes through one, a --local run included —
--local moves the backtest ENGINE onto this machine, never the history. Started with no
environment it serves the same <project>/market_data/hist the seeding command wrote into, and with
no hub keys it authenticates nothing and binds loopback only, which is where --local looks by
default. If the tape went somewhere else, name that directory:
The demo tape is a closed-form curve, not market data; it exists so the tools have something to draw and run, and it is written under its own venue id so it can never be mistaken for, or aggregated with, real rows. For real bars:
Credentials, and the gate that keeps you on paper
There is exactly one credential store, the settings database <project>/settings/db/vike.db, and
absent credentials are the live gate — a demo or live account with no keys does not run. Each
account trades at its own tier (paper, demo or live) only while its account row is active, or
it does not run: no row, an inactive row, or a tier its keys cannot bind exactly runs nothing — never
paper in its place. vike-cli secrets accounts
lists the rows, and vike-cli secrets account activate|deactivate|set-tier --id <N> changes one.
⚠ A credential belongs to its ACCOUNT, and storing one never creates an account or chooses its
tier: vike-cli secrets account add --venue <VENUE> --tier <paper|demo|live> --no-label creates
the row, born ACTIVE, so a live row that then holds its keys arms that account at the next start
of a live daemon.
On a fresh box vike-cli secrets init creates the empty store; vike-cli secrets set --account <ID> <FIELD> adds one of an account's credentials (the value on stdin, never on the command line);
vike-cli secrets path prints which store answers; vike-cli secrets list shows which keys it
holds, account by account.
Nothing in this workspace deletes, moves or rewrites that database as a whole.
Licence
FSL-1.1-ALv2 — source-available, and each version becomes Apache-2.0 on the second anniversary of its release. You may read, modify, self-host and run it, including commercially, and you may charge for support and consulting; you may not offer it as a competing product or hosted service. The two-year clock means every release eventually lands under a permissive licence.
Where to put a bug, a question, or nothing at all
A bug or a wrong claim in these pages belongs in
issues. Issues are open and read. Say what you ran, what happened, what you expected, and the output of vike-cli --version.
A question about using it belongs in discussions.
What this repository cannot take is a pull request, and the reason is structural rather than a policy about contributors: this mirror is a SNAPSHOT — one commit per release, force-pushed, with no history — because a mirror that kept history would hand back every file an earlier release withheld. A branch here is replaced by the next publish. So a patch is welcome as an issue carrying the diff, and it lands upstream by hand.
What will not be answered: requests to run your strategy, judge whether an edge is real, or support a fork. The tests and the decision records in this tree are the argument for every claim it makes; start there.
Source: README.md at commit ba3c824
Tools
0Version history
1- v0.1.0LatestSep 16, 2026
Score
40% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.
