MCPcopy Index your code
hub / github.com/Ax9D/pw-viz

github.com/Ax9D/pw-viz @v0.3.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.3.0 ↗ · + Follow
69 symbols 122 edges 9 files 9 documented · 13%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README
<h1>pw-viz</h1>

A simple and elegant, pipewire graph editor

demo image

This is still a WIP, node layouting is kinda jank at the moment.

Installation

A compiled binary is available on the releases page.

Building from source

To build pw-viz, you will need to have Rust installed. The recommended way to install Rust is from the official download page, using rustup.

Stable Release

Download and extract the source code to the latest release over on the releases page.

Main branch

Alternatively, you can clone the main branch, although its NOT guaranteed to be stable or bug free.

git clone https://github.com/Ax9D/pw-viz

Dependencies

You'll need a few dependencies installed on your system depending on your distro to build pw-viz.

Arch

pacman -S pipewire pkg-config clang libxcb

Fedora

sudo dnf install pipewire pipewire-devel clang libxcb-devel

Other

If you are building on another distro, you can help fill in this section by opening a pull request.

Build

Next, cd into your source folder and then start the build using:

cargo build --release

Then you can copy the resulting binary(pw-viz) which will be found inside target/release to a directory in your $PATH, like /usr/bin/

Controls

Description
Left Click + Drag Move nodes, create links between ports
Alt + Left Click + Drag Remove links
Middle Mouse + Drag Pan the graph
Ctrl Shows pipewire ids of nodes and ports

Zooming is not supported currently

Libraries Used

Thanks / Alternatives

Pipewire connection code is inspired by helvum's implementation * helvum: A GTK patchbay for pipewire.

License

pw-viz is licensed under the terms of the GNU General Public License v3.0. See LICENSE for more information.

Core symbols most depended-on inside this repo

get
called by 17
src/pipewire_impl/state.rs
id
called by 8
src/ui/port.rs
remove
called by 5
src/pipewire_impl/state.rs
id
called by 5
src/ui/node.rs
add
called by 3
src/pipewire_impl/state.rs
value
called by 3
src/ui/id.rs
get_or_create_node
called by 2
src/ui/graph.rs
name
called by 2
src/ui/node.rs

Shape

Method 44
Class 10
Function 9
Enum 6

Languages

Rust100%

Modules by API surface

src/ui/mod.rs15 symbols
src/ui/graph.rs15 symbols
src/ui/node.rs12 symbols
src/pipewire_impl/mod.rs10 symbols
src/pipewire_impl/state.rs6 symbols
src/ui/port.rs5 symbols
src/ui/id.rs3 symbols
src/ui/link.rs2 symbols
src/main.rs1 symbols

For agents

$ claude mcp add pw-viz \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page