← Blog

Kestrel vs Composer: No-Code Strategy Builder vs Agentic-Trading Runtime

A fair comparison of Composer, the no-code visual strategy builder for retail investors, against Kestrel, a language and runtime built for an LLM that must perceive and act on a market.

Answer card

If a person wants to build a rules-based portfolio without writing code (compose conditional blocks, backtest them, and let the platform rebalance automatically), Composer is a purpose-built, well-fit tool. If the trader is an LLM that must perceive a live market and act within it in milliseconds, that shape is wrong: it assumes a human author clicking blocks and a platform holding the account. Kestrel is a language and runtime built for the other reader: the model. Different reader, different tool.

The two products are not competing for the same seat

Composer is a no-code platform for retail investors. Its core artifact is a visual strategy, a tree of conditional logic blocks, that a person assembles, backtests against history, and then runs so the platform rebalances the positions automatically. The author is a human. The interface is a drag-and-drop canvas. The value is removing code from the path between a person and a systematic strategy.

Kestrel starts from a different premise. The two failures of LLM trading are interface, perception and latency, not intelligence. A frontier model can reason about a market; it cannot see one through a screenshot without burning a context window, and it cannot act on one in the milliseconds a move demands. Those are interface problems. Kestrel is the interface: a small language with four statement kinds over one lexical core, and a runtime that renders markets as text and executes contingently at machine speed.

  • VIEW (perception): renders the market as a compact text Frame. The chart is in text: a vertical append-only tape, one row per candle, relative candles in basis points versus prior close, anchored by periodic keyframes. Perception cost is O(new bars), not O(screen), KV-cache-friendly.
  • WAKE (attention): a standing subscription over the trigger algebra. Event-driven, not polling. It spends attention (tokens, wakes), never risk.
  • PLAN (latency): a standing, bounded-risk contingent program (trigger, actions, bracket, invalidation, TTL). The runtime fires it in milliseconds and wakes the agent in parallel. This is fire-then-inform: the agent is never in the hot path.
  • GRADE (trust): the honest, counterfactual result of a run. Contamination-fenced: LLM authors are graded only on post-training-cutoff, date-blinded days, because weights leak what code fences can't stop.

The deepest split is honesty of evaluation. A no-code builder's backtest optimizes a strategy a person already designed, over history the person can see. Kestrel's GRADE scores judgment on days the model could not have memorized. A backtest is never flattering the way an honest, date-blinded grade is unflattering, and only one of those tells you whether the agent can trade.

Where Composer wins, plainly

This section is not a courtesy. If the work is any of the following, choose Composer:

  • A human is the author, and the point is no code. Composer is designed around a person assembling logic visually. Kestrel is designed around a model authoring Kestrel. If your goal is to avoid a language, Kestrel is the wrong direction.
  • Rules-based portfolio rotation you want run for you. Periodic rebalancing across a basket on simple conditions is exactly the shape Composer targets, and it handles the execution and custody so you don't have to. Kestrel's model is an external agent perceiving and acting on an instrument live, not a hands-off managed rotation.
  • You want one platform to hold the account and do everything. Composer bundles building, backtesting, and automated execution behind a single retail account. That integration is a genuine convenience Kestrel deliberately does not offer; Kestrel keeps the brain outside and takes no custody.
  • Turnkey over composable. If you want to start investing this afternoon through one product, a shipping retail platform beats an early, in-build runtime.

If those describe the job, stop here: Composer is the answer, and this is not a close call.

Where Kestrel is the fit

Kestrel is the fit when the trader is a model, the edge is judgment under live conditions, and the two interface failures are what stand between the model and a market.

IMPORT { fade-ladder } FROM "./armory/reversion.kestrel"
USING signal SPX exec SPY 0dte

PLAN headline-chase budget 0.25R ttl 15:55 regime {intraday: trend}
  WHEN spot > HOD AND velocity(5m) >= p95
  DO buy 2 +1 C @ min(fair, mid) peg cap fair
  TP 2.5x frac 0.5 @ fair
  EXIT spot < VWAP held 120s @ fair
  INVALIDATE spot < HOD

This is illustrative, with generic instruments (SPX for signal, SPY 0dte for execution), not a strategy recommendation. It shows how an agent could express a play: you deploy a template like this into your own pod and arm it; the runtime holds the contingency and fires in milliseconds if the trigger hits, and the agent is informed in parallel. Prices are expressions, not constants: min(fair, mid) peg cap fair composes a VALUE anchor with BOOK state and a guard, because a quote is not a value.

Perception and evaluation get the same first-class treatment:

VIEW desk budget 900
  skyline
  levels
  chain

WAKE breakout
  WHEN spot > HOD
  DELIVER desk
  BUDGET 40 wakes/day

GRADE plan headline-chase OVER 2026-04..2026-06 FILL conservative
  VS null
  BY regime

VS null and VS ungated are counterfactuals in the syntax: the grade tells you what the judgment earned over doing nothing, and over an ungated baseline. That is a different question than "what would this backtest have returned," and it is the question that matters when the author is a model.

Comparison table

Standardized columns. Where a Composer detail is uncertain, the cell describes the dimension honestly rather than inventing a spec.

DimensionComposerKestrel + kestrel.markets
Primary readerRetail human (no-code visual builder)An LLM (authors + reads Kestrel)
Perception modelVisual logic blocks + historical backtest curvesVIEW → text Frame; streaming tape; the chart is in text; O(new bars) not O(screen)
Agent in the hot path?N/A; platform engine evaluates + rebalances on its scheduleNo; fire-then-inform; the agent is never in the hot path
Latency floorRebalance-oriented (periodic), not sub-second contingent executionRuntime fires PLANs in milliseconds; agent notified in parallel
Native interface / MCPConsumer web app; API/MCP surface, if any, is not the primary productFour equal faces: HTTP+SSE canonical; TypeScript SDK, CLI, MCP as thin equal projections
Agent-native auth (Envelope)Human account credentialsEnvelope {scope, budget, ceiling, expiry, revocation}; two-signer; authority only narrows downward
Machine paymentHuman billing (subscription)Agent wallet via Stripe MPP / x402, or claim-and-fund by a human
Evaluation honestyBacktest over visible history (author sees the data)GRADE: contamination-fenced, date-blinded, post-cutoff; a backtest is never flattering
ProvenanceBacktest reports, in-app performance historyCertified Blotters (deterministic session records), Grades, shareable Proof URL
Live model (custody)Custodies customer accounts through its own brokerage, per Composer's public materialsCertification over custody: BYO broker via OAuth (roadmap; paper adapter in build), no custody; the live singleton (one live run per pod lineage)
Data licensingPlatform-provided market data (platform terms)Platform-owned Databento served as derived works (never raw redistribution) + BYO Alpaca
Activation pathSign up → fund a brokerage account → build → auto-investProof-before-account: trial capability → free SIM → certified proof → 402 offer only at a paid boundary
PricingSubscription tiersFree discovery/SIM; paid boundaries surfaced as HTTP 402 offers; hosts scarcity, not the brain
Best forRetail humans who want no-code, hands-off rules-based rotationAn external agent perceiving/acting live; judgment graded honestly; agent-native auth + payment

Status, honestly

Composer ships today as a retail product. Kestrel is the OSS language and runtime; kestrel.markets is the commercial platform, the Vercel to Kestrel's Next.js. As of mid-2026: anonymous trial sims, certified Grades, shareable proof URLs, and 402 Offers with Stripe settlement are live; always-on paper presence and the human-signed live path are in build. The free tier needs no signup. Where a claim is a design intent rather than a shipping feature, read it as such. Host the scarcity, rent the genius is the thesis: the scarcity is capital, licensed data, latency, deterministic execution, and provenance; the brain stays outside (the external-agent invariant). This is illustrative and impersonal, not investment advice.

Bottom line

These tools answer different questions. Composer answers "how do I build and run a rules-based portfolio without writing code?", and answers it well, for a person. Kestrel answers "can this model see the market cheaply, act on it in time, and be graded on judgment it couldn't have memorized?" Pick by your reader.

Composer removes the code between a person and a strategy; Kestrel removes the interface failures, perception and latency, between a model and a market.