symposium-dev/symposium

AI the Rust Way

What it solves

AI coding agents are generic and don't know the details of the Rust crates you use in a project. Without extra setup, they miss important conventions, gotchas, or tools that apply to your specific dependencies. Symposium fixes this by automatically linking your project's dependencies to the guidance that crate authors publish, so your agent sees relevant skills and hooks right where you work.

How it works

Symposium reads your Rust workspace's dependency graph using cargo metadata. It then evaluates each plugin's and skill's “predicates” (conditions like depends-on("serde") or path_exists(...)) against that graph. When a predicate matches, Symposium installs the associated extensions into the AI agents you use:

  • Skills: a SKILL.md file with context the agent loads as guidance.
  • Hooks: checks or transformations that run when the agent performs actions (e.g., writing code or running commands).
  • MCP servers: tools and resources exposed to the agent via the Model Context Protocol.

You run cargo agents init once to tell it which agents you use (e.g., Claude Code, Codex CLI, GitHub Copilot). From then on, cargo agents sync matches plugins against the current workspace and updates the installed skills. A single configuration file at ~/.symposium/config.toml is translated into the per-agent files each agent expects, so different people on the same project can use different agents without duplicating setup.

Who it’s for

  • Rust developers who use AI coding agents and want them to have project-aware guidance without manual configuration.
  • Crate authors who want to ship skills, hooks, and MCP servers alongside their libraries so users of those libraries automatically get version-matched assistance.
  • Teams that share a Rust workspace and need a consistent agent setup across members, even if they prefer different agents.

Highlights

  • Agent-agnostic: one config works with Antigravity CLI, Claude Code, Codex CLI, GitHub Copilot, Kiro, OpenCode, and Goose (with support varying per agent).
  • Dependency-driven matching: extensions are installed only when crates in your workspace match the plugin's predicates.
  • Auto-sync: by default, hooks re-scan dependencies on each invocation, keeping skills current.
  • Plugin sources: plugins can come from built-in registries, git repositories, local directories, or directly from crates via a [[plugins]] reference.
  • Crate-author friendly: add a skills/ directory or a Symposium.toml to your crate to distribute guidance.
  • Flexible configuration: options like auto-sync, hook-scope, and auto-update are tunable in ~/.symposium/config.toml.
  • Open source under MIT or Apache-2.0.

Related

  • Project
  • Project
  • Project
  • Project