# Swiftide 0.33 and 0.34 - Agent contrib tools, typed task graphs, rustdoc tools, and more

> Source: <https://blog.bosun.ai/swiftide-0-33-and-0-34/>
> Published: 2026-11-06 12:00:00+00:00

[All posts](https://blog.bosun.ai/)

# Swiftide 0.33 and 0.34 - Agent contrib tools, typed task graphs, rustdoc tools, and more

Swiftide 0.33 and 0.34 ship file and planning tools for agents, typed task graphs with fan-out and joins, tool schemas read from rustdoc, streaming command output, and new docs at swiftide.rs.

Swiftide 0.33 and 0.34 are out. I let a year pass without writing about a release. Part of that was forgetting. Part was spending my time cleaning up AI-generated code, and most of it was building [Bosun](https://bosun.ai).

Swiftide kept moving in the meantime. Here is what you will notice.

*To get started with Swiftide, head over to [swiftide.rs](https://swiftide.rs), check us out on [github](https://github.com/bosun-ai/swiftide), or hit us up on [discord](https://discord.gg/3jjXYen9UY).*

# Contrib tools and hooks for agents

The part I like most. An agent that reads and edits files, keeps a plan, and keeps its context small on long runs used to mean writing those tools yourself. The new `swiftide-agents-contrib` crate ships them, each behind its own feature flag: `agents-contrib-file-tools` for `read_file`, `edit` and `apply_patch`, `agents-contrib-planning` for `update_plan`, and `agents-contrib-context` for hooks that summarize large tool output and compress the conversation.

Every file operation runs through the executor of the context, so the same agent works on a local checkout or inside a container. The [contrib page](https://swiftide.rs/agents/contrib/) covers the hooks.

# Typed task graphs

Tasks moved into their own crate, `swiftide-tasks`, and the graph is typed from node to node. Fan out to several branches, join them when all have arrived, pause for a human and resume later. The compiler checks what flows where.

The [workspace architect](https://swiftide.rs/showcases/workspace-architect/) showcase runs one agent per crate in parallel this way and joins the summaries into one document.

# Tool descriptions from rustdoc

The `#[swiftide::tool]` macro now reads the description the model sees from the doc comment, and each item under `# Arguments` describes one argument. The comment you write for yourself is the schema.

# Streaming command output, and the rest

Executors stream stdout and stderr while a command runs, so a `cargo test` that takes ten minutes shows progress instead of a blank wait:

Also in these releases: images in chat completions, reasoning kept across turns in the OpenAI Responses API, Mistral as a provider, the Bedrock converse API, and MCP through rmcp 2.

# New contributors

Seven people landed their first Swiftide change in these two releases. Thank you.

- [goingforstudying-ctrl](https://github.com/goingforstudying-ctrl) : pipeline statistics ([#1038](https://github.com/bosun-ai/swiftide/pull/1038) ) and a caching fix ([#1164](https://github.com/bosun-ai/swiftide/pull/1164) )
- [Prajwal-k-tech](https://github.com/Prajwal-k-tech) : tool metadata from rustdoc ([#1182](https://github.com/bosun-ai/swiftide/pull/1182) )
- [j-mendez](https://github.com/j-mendez) : Spider Cloud scraping ([#1125](https://github.com/bosun-ai/swiftide/pull/1125) )
- [dexhunter](https://github.com/dexhunter) : faster chunking ([#1173](https://github.com/bosun-ai/swiftide/pull/1173) )
- [pcbeingused333](https://github.com/pcbeingused333) : Anthropic streaming usage fix ([#1220](https://github.com/bosun-ai/swiftide/pull/1220) )
- [agarg21](https://github.com/agarg21) : faster CI builds ([#1206](https://github.com/bosun-ai/swiftide/pull/1206) )
- [thesurlydev](https://github.com/thesurlydev) : a README typo I had missed for months ([#1114](https://github.com/bosun-ai/swiftide/pull/1114) )

# New docs

[swiftide.rs](https://swiftide.rs) is rebuilt. Every Rust block on it compiles against the release, and the showcases are real programs you can clone and run. Each page has a markdown twin and there is an `llms.txt`, so your coding agent can read it too. The repository ships a Claude Code skill in `skills/swiftide` with the same material.

# Breaking changes

The [upgrading page](https://swiftide.rs/reference/upgrading/) walks through all of them. The ones most people hit:

- `CommandOutput` keeps stdout and stderr apart; read them with`stdout()` ,`stderr()` or`to_string_lossy()` .
- The agent system prompt is a `Prompt` ;`SystemPrompt` and its builder are gone.
- `Task::run` returns a`TaskRunOutcome` , and transitions return`Transition` values.
- `Pipeline::run` returns its statistics.

You can find the full [changelog here](https://github.com/bosun-ai/swiftide/blob/master/CHANGELOG.md).

If you build LLM things in Rust, give it a try and tell me what breaks.
