Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
201 changes: 104 additions & 97 deletions Cargo.lock

Large diffs are not rendered by default.

7 changes: 5 additions & 2 deletions md/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,11 @@

- [Introduction](./introduction.md)
- [About](./about.md)
- [Rust Crate Sources Tool](./rust-expertise.md)
- [Rich Collaboration](./rich-collaboration.md)
- [How it works](./how-it-works.md)
- [How to install](./install.md)
- [VSCode](./install-vscode.md)
- [Other editors](./install-other.md)
- [How to contribute](./contribute.md)

# Design and implementation

Expand Down
55 changes: 24 additions & 31 deletions md/about.md
Original file line number Diff line number Diff line change
@@ -1,43 +1,36 @@
# About Symposium
# What we want to achieve

Symposium is a set of components that make AI agents work better. These components are compatible with any ACP-based editing system, including Zed, VSCode (with our plugin), and IntelliJ and NeoVim (coming soon).
You fire up your agent of choice through Symposium. It has a more collaborative style, remembers the way you like to work. It knows about your dependencies and incorporates advice supplied by the crate authors on how best to use them. You can install extensions that transform the agent — new skills, new MCP servers, or more advanced capabilities like custom GUI interfaces and new ways of working.

We focus on three areas:
## AI the Rust Way

<div class="tenets-grid">
Symposium brings Rust's design philosophy to AI-assisted development.

<div class="tenet-section">
<h2>Rust Expertise</h2>
<p>Built-in capabilities for understanding Rust language, errors, and idioms.</p>
<ul class="tenet-examples">
<li class="works"><a href="./rust-expertise.md">rust-crate-sources tool</a></li>
<li class="coming-soon">IDE operations</li>
<li class="coming-soon">Error explanations</li>
</ul>
</div>
<div class="pillars">

<div class="tenet-section">
<h2>Ecosystem-Powered Knowledge</h2>
<p>Crate authors provide specialized AI tooling through Cargo.toml metadata, bringing domain knowledge directly to the agent.</p>
<ul class="tenet-examples">
<li class="coming-soon">Crate-provided skills, context, and capabilities</li>
</ul>
</div>
<div class="pillar">
<h3>Leverage the wisdom of <s>the crowd</s> crates.io</h3>

Rust embraces a small stdlib and a rich crate ecosystem. Symposium brings that philosophy to AI: your dependencies can teach your agent how to use them. Add a crate, and your agent learns its idioms, patterns, and best practices.

Beyond crate knowledge, we want to make it easy to publish agent extensions that others can try out and adopt just by adding a line to their configuration — the same way you'd add a dependency to `Cargo.toml`.

<div class="tenet-section">
<h2>Rich Collaboration</h2>
<p>Interactive patterns for human-AI partnership beyond simple text exchanges.</p>
<ul class="tenet-examples">
<li class="coming-soon"><a href="./rich-collaboration.md">Sparkle collaborative patterns</a></li>
<li class="coming-soon">Walkthroughs</li>
<li class="coming-soon">Taskspaces</li>
</ul>
</div>

<div class="pillar">
<h3>Stability without stagnation</h3>

Rust evolves quickly and agents' training data goes stale. Symposium helps your agent take advantage of the latest Rust features and learn how to use new or private crates — things not found in its training data.

We provide guides and context that keep models up-to-date, helping them write idiomatic Rust rather than JavaScript-in-disguise.

</div>

## Open Source Community
<div class="pillar">
<h3>Open, portable, and vendor neutral</h3>

Symposium is an open-source project and we are actively soliciting [contributors](./contribute.md). We welcome users as well, but given the exploratory nature of Symposium, expect frequent changes. Currently, the only way to install Symposium is from source.
Open source tools that everyone can improve. Build extensions once, use them with any ACP-compatible agent. No vendor lock-in.

We maintain a [code of conduct](https://github.com/symposium-dev/symposium/blob/main/CODE_OF_CONDUCT.md) and operate as an independent community focused on exploring what AI has to offer for software development.
</div>

</div>
Binary file added md/artwork/logos/rustrover.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added md/artwork/logos/vscode.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added md/artwork/logos/zed.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 19 additions & 0 deletions md/contribute.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# How to contribute

Symposium is an open-source project in active development. We're iterating heavily and welcome collaborators who want to shape where this goes.

## Come chat with us

The best way to get involved is to join us on [Zulip](https://symposium.zulipchat.com/). We use it for design discussions, coordination, and general conversation about AI-assisted development.

Drop in, say hello, and tell us what you're interested in working on.

## The codebase

The code lives at [github.com/symposium-dev/symposium](https://github.com/symposium-dev/symposium).

We maintain a [code of conduct](https://github.com/symposium-dev/symposium/blob/main/CODE_OF_CONDUCT.md) and operate as an independent community exploring what AI has to offer for software development.

## Expectations

Given the exploratory nature of Symposium, expect frequent changes. APIs are unstable, and we're still figuring out the right abstractions. This is a good time to contribute if you want to influence the direction — but be prepared for things to shift as we learn.
30 changes: 30 additions & 0 deletions md/how-it-works.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# How it works

Symposium is built on [ACP](https://github.com/anthropics/agent-client-protocol)'s proxy architecture. A proxy sits between your editor and your agent, observing and augmenting the conversation. This position lets it do things MCP servers can't:

- Intercept and modify agent behavior
- Inject context based on your project's dependencies
- Coordinate multi-step workflows
- Contribute UI components to the editor

## Current components

### Ferris

[Ferris](https://github.com/symposium-dev/ferris) is an MCP server that gives agents access to Rust-specific patterns and information.

### symposium-cargo

[symposium-cargo](https://github.com/symposium-dev/symposium-cargo) wraps the `cargo` command, capturing build output and providing it to your agent in a structured format. This gives agents better insight into compilation errors, warnings, and test results.

### Sparkle

[Sparkle](https://symposium-dev.github.io/sparkle/) helps agents develop collaborative working patterns. It helps agents remember how you like to work, maintain context across sessions, and engage more naturally in back-and-forth problem solving.

## What we're experimenting with

- **IDE operations**: Bringing language server capabilities (go-to-definition, find references, refactoring) directly to agents
- **Error explanations**: Rich, context-aware explanations of Rust compiler errors
- **Crate-provided tooling**: Allowing crate authors to ship agent capabilities alongside their libraries
- **Walkthroughs**: Interactive guided explorations of code and concepts
- **Taskspaces**: Isolated working contexts for complex multi-step tasks
21 changes: 21 additions & 0 deletions md/install-other.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Zed, RustRover, Neovim, and other editors

For ACP-compatible editors, install the Symposium agent binary:

```bash
cargo binstall symposium-acp-agent
```

Then configure your editor to use `symposium-acp-agent` as the agent command, passing your preferred downstream agent. For example, with Claude Code:

```bash
symposium-acp-agent -- claude-code --acp
```

Or with Zed's Claude integration:

```bash
symposium-acp-agent -- npx -y @anthropic-ai/claude-code-zed
```

The `--` separates Symposium's arguments from the downstream agent command.
14 changes: 14 additions & 0 deletions md/install-vscode.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# VSCode and VSCode-based editors

Install the Symposium extension from:

- [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=symposium.symposium)
- [Open VSX Registry](https://open-vsx.org/extension/symposium/symposium)

## Getting started

Once installed, you'll see the Symposium icon in the Activity Bar on the left side of your editor:

<img src="./artwork/ferris-in-a-robe-thick.svg" alt="Symposium icon" width="48"/>

Click the icon to open the Symposium panel. From there you can select your agent and start a chat session.
27 changes: 27 additions & 0 deletions md/install.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# How to install

<ul class="editor-list">
<li>
<a href="./install-vscode.md">
<img src="./artwork/logos/vscode.png" alt="VSCode"/>
<span class="editor-name">VSCode</span>
</a>
</li>
<li>
<a href="./install-other.md">
<img src="./artwork/logos/zed.png" alt="Zed"/>
<span class="editor-name">Zed</span>
</a>
</li>
<li>
<a href="./install-other.md">
<img src="./artwork/logos/rustrover.png" alt="RustRover"/>
<span class="editor-name">RustRover</span>
</a>
</li>
<li>
<a href="./install-other.md" class="other-editors">
<span class="editor-name">Other editors</span>
</a>
</li>
</ul>
6 changes: 3 additions & 3 deletions md/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
<img src="./artwork/symposium5_vase-ferris.svg" alt="Symposium Logo" width="50%"/>
<div class="warning-banner">⚠️ Pre-alpha software: may eat your laundry</div>
<br>
<div class="hero-subtitle">Collaborative AI built collaboratively</div>
<div class="hero-subtitle">AI the Rust Way</div>
<div class="action-links">
<a href="./about.md" class="action-link">About</a></a>
<a href="./about.md" class="action-link">About</a>
<span class="separator">⁄</span>
<a href="./get-started" class="action-link">Get started</a>
<span class="separator">⁄</span>
<a href="./contribute.md" class="action-link">Contribute</a>
</div>
</center>
</center>
48 changes: 48 additions & 0 deletions theme/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -155,3 +155,51 @@ h6 {
body[data-no-menu-bar] #content {
padding-top: 4rem;
}

/* Editor install list */
.editor-list {
list-style: none;
padding: 0;
margin: 2rem 0;
max-width: 400px;
}

.editor-list li {
margin: 0;
padding: 0;
}

.editor-list a {
display: flex;
align-items: center;
gap: 1rem;
padding: 1rem 1.5rem;
text-decoration: none;
color: inherit;
border-bottom: 1px solid #e0e0e0;
transition: background-color 0.2s ease;
}

.editor-list li:first-child a {
border-top: 1px solid #e0e0e0;
}

.editor-list a:hover {
background-color: #f5f5f5;
}

.editor-list img {
width: 48px;
height: 48px;
flex-shrink: 0;
}

.editor-list .editor-name {
font-size: 1.2rem;
font-weight: 500;
}

.editor-list .other-editors .editor-name {
margin-left: calc(48px + 1rem);
color: #666;
}
2 changes: 1 addition & 1 deletion vscode-extension/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "symposium",
"displayName": "Symposium",
"description": "Collaborative AI built collaboratively",
"description": "AI the Rust Way",
"version": "1.1.0",
"publisher": "symposium-dev",
"repository": {
Expand Down
2 changes: 1 addition & 1 deletion zed-extension/prod/extension.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name = "Symposium"
version = "1.1.0"
schema_version = 1
authors = ["Niko Matsakis <[email protected]>"]
description = "Collaborative AI with Sparkle identity and Rust crate research"
description = "AI the Rust Way"
repository = "https://github.com/symposium-dev/symposium"

[agent_servers.symposium]
Expand Down