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 < HODThis 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 regimeVS 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.
| Dimension | Composer | Kestrel + kestrel.markets |
|---|---|---|
| Primary reader | Retail human (no-code visual builder) | An LLM (authors + reads Kestrel) |
| Perception model | Visual logic blocks + historical backtest curves | VIEW → 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 schedule | No; fire-then-inform; the agent is never in the hot path |
| Latency floor | Rebalance-oriented (periodic), not sub-second contingent execution | Runtime fires PLANs in milliseconds; agent notified in parallel |
| Native interface / MCP | Consumer web app; API/MCP surface, if any, is not the primary product | Four equal faces: HTTP+SSE canonical; TypeScript SDK, CLI, MCP as thin equal projections |
| Agent-native auth (Envelope) | Human account credentials | Envelope {scope, budget, ceiling, expiry, revocation}; two-signer; authority only narrows downward |
| Machine payment | Human billing (subscription) | Agent wallet via Stripe MPP / x402, or claim-and-fund by a human |
| Evaluation honesty | Backtest over visible history (author sees the data) | GRADE: contamination-fenced, date-blinded, post-cutoff; a backtest is never flattering |
| Provenance | Backtest reports, in-app performance history | Certified Blotters (deterministic session records), Grades, shareable Proof URL |
| Live model (custody) | Custodies customer accounts through its own brokerage, per Composer's public materials | Certification over custody: BYO broker via OAuth (roadmap; paper adapter in build), no custody; the live singleton (one live run per pod lineage) |
| Data licensing | Platform-provided market data (platform terms) | Platform-owned Databento served as derived works (never raw redistribution) + BYO Alpaca |
| Activation path | Sign up → fund a brokerage account → build → auto-invest | Proof-before-account: trial capability → free SIM → certified proof → 402 offer only at a paid boundary |
| Pricing | Subscription tiers | Free discovery/SIM; paid boundaries surfaced as HTTP 402 offers; hosts scarcity, not the brain |
| Best for | Retail humans who want no-code, hands-off rules-based rotation | An 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.