Overview
Phantasy is the engine layer for Rally and other AI-native character products. A model call can produce text. A product needs continuity, private state, tool permissions, and a way to ship character-specific workflows without rewriting the stack every time.
Source is private; available on request for serious hiring conversations. Live product hostnames are Access-gated today. Ungated proof: the Rally portfolio page (SFW clip + architecture) and the writeups on this site.
Problem
Companion apps keep getting rebuilt as one-off prompt wrappers. Identity, memory, tools, and operator control end up copied, drifted, or missing. Phantasy is the shared runtime so those pieces have a boundary.
What I built
- Agent runtime and operator UI for character-led products.
- Tool governance, approval modes, workspace scaffolding, and local setup.
- A hard split: Rally owns affection, dates, purchases, and launch gates; Phantasy owns reusable character behavior.
Hard parts
The useful work is the boundary, not the prompt. What state is private to the browser? What can a tool do without an operator? How do you add a new character product without forking the engine? Those questions are the product.
Result
Internal roleplay evals improved ~60% with browser-optimized SLM fine-tuning. Rally is the first playable proof on the runtime. Site: phantasy.bot. Repositories are private.

