Competitive vim motion racing. Practice alone or race others in real time.
Play now at vimgym.app
Each service needs its own .env file:
frontend/.env
VITE_BACKEND_URL=http://localhost:3001
VITE_MATCHMAKING_URL=ws://localhost:3002
backend/.env
MATCH_TOKEN_SECRET=any-shared-secret-for-dev
matchmaking/.env
MATCH_TOKEN_SECRET=any-shared-secret-for-dev
GAME_SERVER_URL=http://localhost:3001
Start each service in its own terminal:
# Frontend (localhost:3000)
cd frontend && npm install && npm run dev
# Backend (localhost:3001)
cd backend && npm install && npm run dev
# Matchmaking (localhost:3002)
cd matchmaking && npm install && npm run dev
Solo practice works with just the frontend and matchmaking server. Matchmaking is only needed for quick match multiplayer.
Both the backend and matchmaking services deploy to Fly.io via GitHub Actions on push to main. See .github/workflows/ for details.
This project is licensed under the GNU Affero General Public License v3.0.
$ claude mcp add VIM_GYM \
-- python -m otcore.mcp_server <graph>