How a session flows
Orbital builds and backtests trading strategies on your own rules. Through the Orbital AI connector, Claude reads the authoring guide with get_authoring_guide, saves a strategy with create_strategy, estimates the backtest with estimate_backtest, runs it with run_backtest, and reads the result with get_backtest. For a Program strategy it also builds the program with build_program between saving and estimating.
run_backtest returns a run id at once. Daily runs finish in seconds and intraday runs in minutes. Claude polls get_backtest every 10 to 15 seconds until the status is completed, failed or cancelled. Then it changes the strategy with update_strategy and runs again.
To find a strategy, Claude uses list_strategies, and get_strategy reads one with its versions, recent runs and graph. get_backtest_trades reads a run's trade log, and cancel_backtest cancels a queued or running backtest.
The tools
| Tool | What you can do | Kind |
|---|---|---|
| Strategies | ||
get_authoring_guide | Returns the rule-card vocabulary or the Program manual that Claude reads before it writes a strategy. | read |
create_strategy | Saves a new strategy from the minimal nodes-and-connections spec and enrols it for backtesting. | write |
build_program | Compiles a Program node's Rust source and stamps the built module on the node as a new version. | destructive |
list_strategies | Lists the project's strategies with the latest backtest verdict of each. | read |
get_strategy | Reads one strategy: its versions, its recent runs, and the graph that update_strategy takes back. | read |
update_strategy | Replaces a strategy's graph with the complete graph Claude sends, saved as a new version. Prior versions are kept. | destructive |
| Backtests | ||
estimate_backtest | Sizes a run in symbols, trading days and bars, checks data coverage and returns the confirm handoff run_backtest takes. | read |
run_backtest | Launches a backtest under a run id Claude mints, counts toward the run quota, and returns the run id at once. | destructive |
get_backtest | Returns a run's status and progress while it runs, and its compact verdict once it is done. | read |
get_backtest_trades | Returns a page of a finished run's trade log, newest first within the page, with the total. | read |
cancel_backtest | Cancels a queued or running backtest. A finished run is refused, and a cancelled run cannot be resumed. | destructive |
Four tools are marked destructive, so Claude may ask you to confirm before calling one. update_strategy and build_program replace the strategy's current graph or Program code, though its numbered versions keep their own. When a run from run_backtest completes, earlier runs of the same configuration keep their figures but give up their curve and trade log; see The equity chart. cancel_backtest ends a run, which cannot be resumed.
Permissions and refusals
The tools reach only the project you connected; to work in another project, connect again. Every refusal comes back in Orbital's own words, and Claude relays it and fixes the arguments rather than retrying unchanged.
Three of the permissions on the consent page govern the tools. Read is always granted.
| Permission | On the consent page | Tools |
|---|---|---|
| read | Read your strategies and backtests | get_authoring_guide, list_strategies, get_strategy, estimate_backtest, get_backtest, get_backtest_trades |
| write | Create and edit strategies | create_strategy, update_strategy, build_program |
| run | Run backtests | run_backtest, cancel_backtest |
A call without its permission is refused. The message names the tool and the permission, and asks Claude to have you reconnect Orbital with it. For example: "run_backtest needs the 'run' scope, which this connection was not granted. Ask the user to reconnect Orbital with it." See Connect Claude to Orbital.
Write and run tools also need a project role that may write: anyone in the project except a viewer, or a workspace owner or admin. A viewer's write or run call is refused with "Your role in this project (viewer) cannot change strategies or run backtests." See the role refusal.
After the scope check and before the role check, every call checks that the Backtesting app is active in the connected project. If it is not, the call is refused with "Backtesting is not active in this project — turn it on under Settings → Apps in Orbital, then try again"; Switch an app on or off in a project shows how.
Some refusals come from the run itself:
- A period must start before it ends, and starting capital must be at least $100.
cost_profiledefaults toalpaca_us_equities, a zero-commission US equities broker, andzerois a frictionless research setting;ibkr_pro_tieredandcustomare refused. See estimate_backtest and The four profiles.- A deployed strategy may not change while that deployment runs; branch it in Orbital and change the branch instead. See What a running deployment locks.
- A run over the backtest quota is refused with a message that says why, and one the workspace cannot afford with "This run was not started: it is more than this workspace's account allows right now. The user can see why in Orbital." See The run quota is reached.
The results of list_strategies, get_strategy, estimate_backtest, run_backtest, get_backtest and get_backtest_trades carry the disclaimer at the top of this page, word for word.