A little companion suite for VRChat to help you track friend activity, inject metadata into photos, and receive VR/desktop notifications.
It features a server-client architecture, to avoid having multiple connections to VRC APIs.
Warning
Status: Most features present. Stable for daily use; Under active development.
Otherwise, get ready to frequently pull, upgrade dependencies, and build!
Warning
The client requires an active running vrcd server and packages do not come with the server.
There are plans to fix this.
Client features:
- Relatively light client using software rendering; Hardware option available.
- VR friendly UI.
- Embed world and player metadata into VRChat photos automatically.
- Strip VRChat and other metadata from VRChat photos.
- VR overlay notifications (XSOverlay/WayVR, OVR Toolkit) and desktop notifications.
- Drop a Portal integration.
Server features:
- Record incoming VRChat events.
- Event-stream API with 'catch-up' and 'back-fill' actions to know what you missed.
Feel free to join the official VRChat group (VRCD.7796)!
Related projects:
- vrcd-server-container by ArcaneDisgea.
See Compiling.
After connecting to the server, the authentication will be forward to the first connected client. After connecting, you should be good to go!
The pipehelper subpackage is used to make "Open in VRChat" button work.
- You'll need to make a Windows build of pipehelper with
dub build :pipehelperin Windows, and placepipehelper.exenext to thevrcd_clientexecutable or in~/.config/vrcd. - Add
STEAM_COMPAT_LAUNCHER_SERVICE=protonin your launch options.
If either piece is missing, or the IPC attempt fails, the client falls back to a server-side self-invite.
+ ~ ~ ~ ~ ~ ~ ~ ~+
| VRChat servers |
+~ ~ ~ ~ ~ ~ ~ ~ +
^
HTTP requests/WS events
v
+----------------+ +-----------------+
| vrcd-server | <- JSON-L -> | vrcd-client(s) |
| - VRC API sync | | - Picture meta |
| - Friend state | | - Notifications |
+----------------+ +-----------------+
Targets:
- Server: Stays connected to VRChat's WebSocket 24/7, records events to SQLite, and serves them over TCP.
- Client: Connects to the server, watches local VRChat logs, and injects metadata into photos.
Targets Windows and Linux.
See each component's README for dependencies, configuration, and architecture details.
In short:
- Client needs SDL2 dynamic libraries (SDL2, SDL2_ttf, SDL2_image), libcurl static library, and optionally OpenSSL.
- Server needs libcurl and sqlite static libraries and optionally OpenSSL.
# Upgrade dependencies for server and client
dub upgrade -s
# Build, test, and run server (might be best to setup config first)
# For more info, see server/README.md
dub build :server
dub test :server
./client/vrcd_server
# Build, test, and run client
# For more info, see client/README.md
dub build :client
dub test :client
./client/vrcd_clientSee API.md for server-client API details.
- Using LDC 1.41 on Windows will lead to compiling issues: undefined PAGESIZE in core.thread.fiber
I'm unsure how I want to handle contributions at this moment, sorry.
However, feel free to submit bugs in Issues and feature suggestions in Discussions, thanks.
This software is provided as-is without any warranty and is not affiliated with VRChat.
VRCD does not modify the game client in any shape, nor does it reflect the views or opinions of VRChat. It is only an external tool using the VRChat API.
Users are still responsible for complying with VRChat's Terms of Service.
VRChat is copyrighted work of VRChat Inc.
Both the server and client components are licensed BSD-3-Clause-Clear.


