A web companion app for managing VRChat assets, including avatars, clothing, props, textures, and more.
This project was entirely coded using AI (Claude 3.7 Sonnet Thinking).
This code is provided as-is. While effort has been made to ensure functionality, it comes with no warranty or guarantee of support.
Please note:
- This project is shared without dedicated support resources.
- Use of this code is at your own risk.
- No official support will be provided for setup, usage, customization, or troubleshooting.
- Community contributions and improvements via pull requests are welcome, but please do not expect personalized assistance.
For any issues or questions, consider consulting online resources, community forums, or attempting to resolve problems independently.
- Organize and manage VRChat avatar assets by categories
- Track compatibility between assets and avatars
- Create collections to group related assets
- Favorite and quickly access frequently used items
- Search and filter assets by various criteria
- Dark/Light theme support
- Custom image uploads for avatars and collections
- Frontend: React, Material-UI, Framer Motion
- Backend: Node.js, Express
- Database: SQLite
- Containerization: Docker, Docker Compose
vrchat-asset-manager/
│
├── client/ # React frontend
│ ├── public/
│ ├── src/
│ └── package.json
│
├── server/ # Express backend
│ ├── db/ # Database related files
│ ├── routes/ # API routes
│ ├── models/ # Data models
│ ├── utils/ # Utility functions
│ ├── server.js # Express server
│ └── package.json
│
├── database/ # SQLite database file (created at runtime)
├── uploads/ # Uploaded files (created at runtime)
├── docker-compose.yml
└── Dockerfile
The easiest way to get started is using Docker:
-
Clone the repository:
git clone git@github.com:Eidenz/VRChat-Asset-Manager.git cd vrchat-asset-manager
-
Build and start the Docker containers:
docker-compose up -d --build
-
Initialize the database (first time only):
docker exec -it vrchat-asset-manager npm run init-db
-
Access the application at http://localhost:5000
-
Clone the repository:
git clone git@github.com:Eidenz/VRChat-Asset-Manager.git cd vrchat-asset-manager
-
Install dependencies:
cd server npm install cd ../client npm install
-
Initialize the database:
cd ../server npm run init-db
-
Start the development servers:
# In one terminal window (server) cd server npm run dev # In another terminal window (client) cd client npm start
-
Access the client application at http://localhost:3000
GET /api/avatars
- Get all avatarsGET /api/avatars/:id
- Get avatar by IDPOST /api/avatars
- Create a new avatarPUT /api/avatars/:id
- Update an avatarPUT /api/avatars/:id/current
- Toggle avatar current statusPUT /api/avatars/:id/favorite
- Toggle avatar favorite statusDELETE /api/avatars/:id
- Delete an avatarGET /api/avatars/bases/all
- Get all avatar bases
GET /api/assets
- Get all assetsGET /api/assets/recent
- Get recently added assetsGET /api/assets/favorites
- Get favorited assetsGET /api/assets/types/:type
- Get assets by typeGET /api/assets/:id
- Get asset by IDPOST /api/assets
- Create a new assetPUT /api/assets/:id
- Update an assetPUT /api/assets/:id/used
- Update asset last used datePUT /api/assets/:id/favorite
- Toggle asset favorite statusDELETE /api/assets/:id
- Delete an assetGET /api/assets/types/all
- Get all asset typesGET /api/assets/tags/all
- Get all tags
GET /api/collections
- Get all collectionsGET /api/collections/:id
- Get collection by IDGET /api/collections/:id/assets
- Get collection assetsPOST /api/collections
- Create a new collectionPUT /api/collections/:id
- Update a collectionDELETE /api/collections/:id
- Delete a collectionPOST /api/collections/:id/assets
- Add asset to collectionPOST /api/collections/:id/assets/batch
- Add multiple assets to collectionDELETE /api/collections/:id/assets/:assetId
- Remove asset from collection
GET /api/settings
- Get all settingsGET /api/settings/:key
- Get setting by keyPUT /api/settings/:key
- Update a settingPOST /api/settings
- Update multiple settings
POST /api/uploads/image
- Upload an image fileDELETE /api/uploads/image/:filename
- Delete an uploaded image file
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.