Thanks for your interest in StepWrite. This repository is the research prototype for the UIST '25 paper, so the main goals are that it stays easy to run and that its behaviour stays faithful to the system described in the paper. Bug fixes, setup improvements and documentation are especially welcome.
- Fork and clone the repository, then run
npm run install-all. - Copy
server/.env.templatetoserver/.envand add your OpenAI API key. - Run
npm startand open http://localhost:3000.
See the README for details and configuration options.
- Keep changes focused. One fix or feature per pull request, with a short description of the problem and the approach.
- Commit messages follow Conventional Commits:
feat:,fix:,docs:,refactor:,chore:. - Configuration belongs in
server/config.jsandclient/src/config.js, not in scattered constants. The continuous-draft settings exist in both files and must stay in sync. - Prompts live in
server/prompts/. If you change one, describe the inputs you tried and what changed in the pull request, since prompt changes alter the system's behaviour. - Never commit secrets, such as
.envfiles, API keys or tunnel tokens, or participant data from user studies (server/temp/is git-ignored for this reason). - Test by hand in hands-free mode with a real microphone, and in
TEXT_ONLYmode, on both desktop and phone widths.
Use the issue templates. For bugs, include steps to reproduce, what you expected, your browser and device, and the input mode you were using.
By participating in this project you agree to follow the Code of Conduct.