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

ToolWhat you can doKind
Strategies
get_authoring_guideReturns the rule-card vocabulary or the Program manual that Claude reads before it writes a strategy.read
create_strategySaves a new strategy from the minimal nodes-and-connections spec and enrols it for backtesting.write
build_programCompiles a Program node's Rust source and stamps the built module on the node as a new version.destructive
list_strategiesLists the project's strategies with the latest backtest verdict of each.read
get_strategyReads one strategy: its versions, its recent runs, and the graph that update_strategy takes back.read
update_strategyReplaces a strategy's graph with the complete graph Claude sends, saved as a new version. Prior versions are kept.destructive
Backtests
estimate_backtestSizes a run in symbols, trading days and bars, checks data coverage and returns the confirm handoff run_backtest takes.read
run_backtestLaunches a backtest under a run id Claude mints, counts toward the run quota, and returns the run id at once.destructive
get_backtestReturns a run's status and progress while it runs, and its compact verdict once it is done.read
get_backtest_tradesReturns a page of a finished run's trade log, newest first within the page, with the total.read
cancel_backtestCancels 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.

PermissionOn the consent pageTools
readRead your strategies and backtestsget_authoring_guide, list_strategies, get_strategy, estimate_backtest, get_backtest, get_backtest_trades
writeCreate and edit strategiescreate_strategy, update_strategy, build_program
runRun backtestsrun_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_profile defaults to alpaca_us_equities, a zero-commission US equities broker, and zero is a frictionless research setting; ibkr_pro_tiered and custom are 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.