Repository navigation
Deployment
CodingDude is designed to be a single-user, single-command deployment on your own machine.
<install dir>/ # the repository: src/, frontend/, tests/, docs/
.venv/ # uv-managed environment
frontend/dist/ # built UI, served by the server
~/.codingdude/ # CODEDUDE_HOME: config, token, skills, DBs, traces, logs
Two things are code (src/, frontend/dist) and one is state
(~/.codingdude/). Upgrades replace the first and must not touch the second.
git clone https://github.com/cybersenses/codingdude.git
cd codingdude
uv sync
uv run codingdude serveOpen http://127.0.0.1:8765, configure a provider key, verify it, add a project.
-
Stop the server (or use
codingdude restart --statusto see what is running, then restart deliberately). - Pull the new code:
git pull uv sync # resolves dependency changes - Rebuild the frontend if it changed:
The server serves
cd frontend && npm ci && npm run build && cd ..
frontend/dist; a source change without a rebuild is the classic "my fix is not in the UI" bug, visible as a version mismatch in the StatusFooter. - Start it again and check
/health—version,git_shaandstarted_attell you exactly what is running.
Config changes never need a restart. They load per run. Only code changes do.
-
bashresolves to Git Bash explicitly, never the WSL stub (which fails with "no installed distributions"). - Prompts travel by file, not argv, because of the 32k command-line limit.
- Timeouts kill the whole process tree (
taskkill /T), so a grandchild process cannot hold pipes open and wedge a run. - Use
G:\path, notG:path— a drive-relative path is rejected on purpose.
gates.bat :: uv run ruff check src tests tools, uv run mypy, uv run pytest -qFrontend:
cd frontend && npm run lint && npm run test && npm run buildCI runs the same on windows-latest in three jobs: (1) lint, type-check and
pytest; (2) the frontend — lint, vitest, build; (3) the scripted benchmark. Python
tests and linters are venv-scoped: run them through uv run, not from a bare
shell.
| Task | Command |
|---|---|
| Is it running, and which build? | curl -s http://127.0.0.1:8765/health |
| Restart after code changes | uv run codingdude restart |
| Status only, change nothing | uv run codingdude restart --status |
| Logs |
~/.codingdude/logs/server.log, worker-*.log
|
| Trace of a session | ~/.codingdude/traces/<session>.jsonl |
| Token | ~/.codingdude/server-token |
What matters is state, not code:
-
~/.codingdude/config.toml,server-token,mcp.json,skills/,DIRECTIVES.md - the SQLite databases (sessions, planning, memory, usage)
- each project's
ROADMAP.md,CONTEXT.md,AGENT.md
Copy the config home while the server is stopped. The SQLite store runs in WAL
mode, so a hot copy without the -wal file is an inconsistent snapshot.
If you fork this project and want a GitHub wiki, remember that GitHub has no API
and no gh command for wiki pages: the wiki repository
(https://github.com/<owner>/<repo>.wiki.git) does not exist until someone creates
the first page in the browser, and after that it is plain git. GitHub Pages, by
contrast, is configured from the repository's own content.
Start
How it works
Using it
Project