Ways to Contribute

Every entry below is a doorway into a real subsystem. Pick whichever one sparks your interest โ€” small PRs are as welcome as big ones.

Extend the Tag DSL

Add new GM directives, narrative tools, or mechanical hooks to the deterministic, test-covered protocol that keeps the AI GM legible. Start in fates-edge-ai-gm-bot's tag-protocol module.

Build new client surfaces

Mobile app, Slack bot, custom VTT โ€” anything that speaks the room protocol can join the ecosystem. The transport layer is designed for exactly this.

Add new LLM drivers

The AI GM is driver-agnostic. Anthropic, Groq, Gemini, and local models are all fair game โ€” implement the driver interface and drop it in.

Improve the transport layer

Event parity across web, desktop, terminal, Discord, Roll20, Foundry, and Python clients; reliability and scaling work always welcome.

Author adventure modules

JSON-based, rules-native, AI-optional. If you'd rather write than code, this is the highest-leverage way to contribute.

Expand the voice stack

New TTS engines, ambience systems, or adapters for the (fully toggleable) voice pipeline.

Enhance the web client

VTT tools, offline mode, UI polish โ€” styled against the shared theme documented on the Design Tokens page.

Contribute to the terminal client

ANSI UI, WS protocol, dice UX โ€” for the devs who never want to leave the terminal.

Write docs and examples

Tutorials, diagrams, onboarding guides. This portal and the blog are both fair game for PRs too โ€” they're just Astro sites in fate-edge-dev and fates-edge-blog.

First PR checklist

  • Read the architecture overview for the subsystem you're touching.
  • Open an issue first for anything non-trivial โ€” it's the fastest way to avoid duplicate or misdirected work.
  • Tests are expected for the rules engine, transport layer, and Tag DSL; docs and content PRs don't need them.
  • Say hello in Discussions โ€” the maintainer (Nick) responds there.