Sharpee
From IFWiki
| Sharpee | |
|---|---|
| Authoring system | |
| Links | Home page Download |
| Developer | David Cornelson |
| Format | Sharpee |
| Interaction style | Parser |
| Systems | Windows, macOS, Linux |
| Latest version | 0.9.91 / 18 February 2026 |
| Status | Beta |
| Multimedia support | Color, Graphics, Sound |
| Browse the software database | |
| Edit this infobox | |
Sharpee is a parser-based interactive fiction authoring platform built in Typescript by David Cornelson. It provides a modern, extensible architecture for creating text adventures with optional rich media support.
Architecture
Sharpee is organized as a monorepo of composable packages:
- Engine — Turn cycle, command execution, event dispatch, plugin architecture
- World Model — Entity system with traits and behaviors for modeling game objects, rooms, and actors
- Standard Library (stdlib) — 43 standard IF actions (take, drop, open, lock, go, look, etc.) following a four-phase pattern: validate, execute, report, blocked
- Parser — Grammar-based command parsing with verb aliases, slot constraints, and story-extensible patterns
- Language Layer — All user-facing text is separated from logic via message IDs, enabling localization (currently English)
- Platform Browser — Classic IF web client with menus, save/restore, and theme support
- Zifmia — Story runner built on React, supporting both classic text and rich media (inline illustrations, custom themes, audio). Named after the Enchanter-trilogy spell for summoning.
Key Features
- Trait and behavior system — Entities are composed of traits (data) and behaviors (logic), avoiding deep inheritance hierarchies
- Capability dispatch — Verbs with entity-specific semantics (turn, wave, lower) are handled by trait-registered behaviors, not monolithic action handlers
- Event-driven — Actions emit semantic events; clients, story handlers, and daemons react independently
- NPC system — Autonomous NPCs with behavior scripts, scheduled actions, and daemon/fuse support for timed events
- Language separation — Engine and stdlib never emit English strings; all prose flows through a pluggable language layer
- Story-extensible — Stories add custom actions, grammar patterns, traits, and behaviors without modifying the platform
Distribution
Sharpee packages are published to npm under the @sharpee scope. Stories compile to .sharpee bundle files (zip archives containing story code, metadata, optional assets and themes) that run in the Zifmia story runner — a lightweight desktop app (via Tauri) or web-hosted player. Authors distribute story files; players install one runner.
Current Status
Active development. The platform is being dog-fooded with a full implementation of 1981 Mainframe Zork (191 rooms, ~616 points).
Roadmap
- Forge will be a custom trained small language model specifically for Sharpee. It will enable authors to develop a specification that Forge knows how to translate to a Sharpee story.