PoC to try how implement something like Claude Cowork
  • Rust 71.5%
  • QML 14%
  • Nix 13.1%
  • CMake 1.1%
  • Shell 0.3%
Find a file
2026-05-29 15:33:54 +02:00
.claude claude: Resume rust skill and main file 2026-04-14 21:32:43 +02:00
npins Update deps 2026-05-29 15:33:54 +02:00
src wayland: Reduce portal session flags to avoid DE refusal 2026-05-01 16:47:06 +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 messages: Split messages and message model 2026-04-16 20:14:00 +02:00
Cargo.lock Update deps 2026-05-29 15:33:54 +02:00
Cargo.toml Update to ADK 0.7: Fix qwen3-coder support 2026-04-28 15:57:31 +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 messages: Add image on message 2026-04-16 22:28:09 +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