PoC to try how implement something like Claude Cowork
  • Rust 66.1%
  • QML 16.5%
  • Nix 15.7%
  • CMake 1.4%
  • Shell 0.3%
Find a file
2026-04-15 17:11:13 +02:00
.claude claude: Resume rust skill and main file 2026-04-14 21:32:43 +02:00
npins Init 2026-04-07 14:04:50 +02:00
src messages: Add message on uncreatable 2026-04-15 17:11:13 +02:00
.envrc Init 2026-04-07 14:04:50 +02:00
.gitignore Add kde-frameworks and basic chat (WIP) 2026-04-12 14:55:52 +02:00
build.rs qml: Split chat into new component 2026-04-12 21:18:57 +02:00
Cargo.lock Add tracing + licence headers 2026-04-13 16:02:53 +02:00
Cargo.toml Add tracing + licence headers 2026-04-13 16:02:53 +02:00
CLAUDE.md claude: Resume rust skill and main file 2026-04-14 21:32:43 +02:00
CMakeLists.txt Add install files 2026-04-13 21:23:19 +02:00
fr.mrdev023.cowork.desktop Add install files 2026-04-13 21:23:19 +02:00
fr.mrdev023.cowork.metainfo.xml Add install files 2026-04-13 21:23:19 +02:00
fr.mrdev023.cowork.svg Add install files 2026-04-13 21:23:19 +02:00
Messages.sh Implement Kirigami and add cxx-kde-frameworks 2026-04-11 01:05:31 +02:00
README.md README: Add rust stack 2026-04-12 15:21:17 +02:00
shell.nix Add kde-frameworks and basic chat (WIP) 2026-04-12 14:55:52 +02:00

cowork_test

Desktop AI assistant: a Kirigami/Qt6 desktop app and an MCP server for Wayland desktop control.

Requirements

  • A Wayland session with xdg-desktop-portal (GNOME or KDE)
  • Nix (packages are declared in shell.nix, load with direnv allow)

How it works

On Wayland, direct input/screen access is not allowed. This server uses the XDG Desktop Portal APIs via ashpd:

  • RemoteDesktop portal — to move the pointer and send button/key events
  • Screencast portal — to get a stream node ID required by RemoteDesktop
  • Screenshot portal — to take screenshots

On startup, the portal will prompt for permission to control the desktop. Once granted, the session stays open until the server stops.

Rust stack