MCPcopy Index your code
hub / github.com/dimtpap/coppwr

github.com/dimtpap/coppwr @1.7.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.7.1 ↗ · + Follow
250 symbols 565 edges 24 files 14 documented · 6%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Icon

coppwr

Low level control GUI for PipeWire Screenshot

Description

coppwr displays and provides control over many aspects of PipeWire as directly as possible in an organized and visual way. It can help with debugging and diagnosing a PipeWire setup or with developing software that interacts with PipeWire.
End-users of PipeWire that want to configure it should look into simpler tools recommended by the PipeWire devs. If you want to learn the inner workings of PipeWire check out the docs page on its internals and its wiki.

Features

  • Node graph editing
  • Object inspection, creation & destruction
  • Process monitoring & profiler statistics
  • Metadata editing
  • Module loading
  • Connecting to XDG Desktop Portal remotes
    More to be added...

Installing

Flatpak

io.github.dimtpap.coppwr is available on Flathub.

Download on Flathub

Arch Linux

coppwr AUR version coppwr-bin AUR version
coppwr-bin is available from the AUR (use coppwr for the non-prebuilt package).
Use your AUR helper of choice or install it manually

git clone https://aur.archlinux.org/coppwr-bin.git
cd coppwr-bin
makepkg -i

Debian, RPM

[!NOTE]
coppwr does not self-update.

Debian and RPM packages are available from the releases.

Building

Requirements

  • Rust and Cargo version 1.85 or later - https://www.rust-lang.org/tools/install
  • bindgen requirements
  • PipeWire library headers/PipeWire development packages

Available Cargo features

  • pw_v0_3_77 - Used for the Link permission on PipeWire globals. Enable this if you're building with libpipewire 0.3.77 or later.
  • xdg_desktop_portals - (On by default) Used for dark/light theme detection and opening PipeWire remotes with the Camera and Screencast portals.
  • persistence (On by default) - Store application data like window info, graph node positions etc. on disk

Build

In the repository's root directory

cargo build --release

See the Cargo reference for info on how to use any of the above features

Arch Linux

coppwr is available from the AUR

git clone https://aur.archlinux.org/coppwr.git
cd coppwr
makepkg

Debian, RPM

Debian and RPM packages can be created using cargo-deb and cargo-generate-rpm respectively. See their usage instructions.

Credits

Extension points exported contracts — how you extend this code

PersistentView (Interface)
Trait for views that would like to save some state between reconnections AKA the [Memento Pattern](https://en.wikipedia. [1 …
src/ui/util/persistence.rs
Tool (Interface)
(no doc) [3 implementers]
src/ui/util/tool.rs

Core symbols most depended-on inside this repo

show
called by 22
src/ui/graph.rs
props
called by 20
src/ui/global.rs
len
called by 20
src/ui/util/ringbuf.rs
push
called by 18
src/ui/profiler.rs
iter
called by 18
src/ui/util/ringbuf.rs
into_iter
called by 17
src/ui/util/ringbuf.rs
as_str
called by 16
src/ui/app.rs
is_empty
called by 14
src/ui/profiler.rs

Shape

Method 162
Class 44
Function 28
Enum 14
Interface 2

Languages

Rust100%

Modules by API surface

src/ui/profiler.rs36 symbols
src/ui/graph.rs30 symbols
src/ui/app.rs28 symbols
src/ui/global.rs20 symbols
src/ui/util/ringbuf.rs18 symbols
src/ui/util/uis.rs17 symbols
src/backend/pods/profiler.rs13 symbols
src/ui/metadata_editor.rs11 symbols
src/ui/globals_store.rs11 symbols
src/backend/mod.rs11 symbols
src/backend/connection.rs11 symbols
src/backend/listeners.rs9 symbols

For agents

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

⬇ download graph artifact