{"id":50697463,"url":"https://github.com/ysocrius/gitpod_codeassist","last_synced_at":"2026-06-09T07:32:56.986Z","repository":{"id":323118321,"uuid":"1092180645","full_name":"ysocrius/gitpod_codeassist","owner":"ysocrius","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-08T06:48:41.000Z","size":23717,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-08T08:25:20.784Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ysocrius.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-08T06:20:34.000Z","updated_at":"2025-11-08T06:48:44.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ysocrius/gitpod_codeassist","commit_stats":null,"previous_names":["ysocrius/gitpod_codeassist"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ysocrius/gitpod_codeassist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysocrius%2Fgitpod_codeassist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysocrius%2Fgitpod_codeassist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysocrius%2Fgitpod_codeassist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysocrius%2Fgitpod_codeassist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ysocrius","download_url":"https://codeload.github.com/ysocrius/gitpod_codeassist/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysocrius%2Fgitpod_codeassist/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34096950,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-09T07:32:56.068Z","updated_at":"2026-06-09T07:32:56.980Z","avatar_url":"https://github.com/ysocrius.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# CodeAssist - AI Programming Assistant\n\nCodeAssist is a completely private and local AI coding assistant, developed by Gensyn. It helps you practice programming problems and train a novel assistant to help you code.\n\nUnlike typical code assistants, CodeAssist writes directly in your editor as you work. Every keystroke - whether you type, fix, delete, or leave its output untouched - becomes a learning signal. Over time, it adapts to your habits and style, acting more like an apprentice learning from your craft than a tool following commands.\n\n[Docs](https://docs.gensyn.ai/testnet/codeassist) | [Tutorial](https://docs.gensyn.ai/testnet/codeassist/using-codeassist) | [Leaderboard](https://dashboard.gensyn.ai/?application=CodeAssist)\n\n# Installation\n\nGet started with installing CodeAssist.\n\n## Docker\n\nInstall [Docker](https://docs.docker.com/engine/install/) on your system, according to the instructions for your machine.\n\n## Python\n\nPython is required to run the main script that handles your environment. We require a version no older than 3.10.\n\n## UV\n\nUV is required to manage the dependencies of the main script. It can be installed with the following steps:\n\n### MacOS\n\n```bash\nbrew install uv\n```\n\n### Linux (or alternate MacOS install, for those without Brew)\n\n```bash\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n```\n\n# Downloading the Code\n\nTo download the code, simply clone the repository:\n\n```bash\ngit clone https://github.com/gensyn-ai/codeassist.git\ncd codeassist\n```\n\n# Running\n\nTo run CodeAssist, simply execute the following command:\n\n```bash\nuv run run.py\n```\n\n## HuggingFace Token\n\nTo start CodeAssist, you will need to have a HuggingFace token. Follow [these instructions](https://huggingface.co/docs/hub/en/security-tokens) and generate a token with `Write` access.\n\n## Web UI\n\nAfter the script is running, your browser should open automatically but if it doesn't, open a window and go to [localhost:3000](http://localhost:3000) to open CodeAssist.\n\nWhen the web UI loads, you'll see a login modal where you can log in with email (which sends a one-time passcode) or with Google. After logging in for the first time, your local credentials will be stored in `persistent-data/auth/userKeyMap.json`.\n\nOnce logged in, you can select Easy, Medium, or Hard problems from the sidebar. CodeAssist will begin recording an episode. Every click, keystroke, edit, or deletion is logged as training feedback.\n\nWhen you stop typing, CodeAssist takes initiative. It writes directly into your file without any pop-ups or confirmations. Whether you accept, modify, or remove its edits, each interaction contributes to the model’s understanding of your preferences.\n\n### Tips \u0026 Tricks\n\n- Use `Shift+Space` or click the Pause Assistant button to temporarily stop the assistant. The first keystroke after pausing will unpause it.\n- Keep your cursor near the section you're working on, as CodeAssist inserts code relative to your cursor position.\n- When the assistant produces a \"No-Op\" (does nothing), it's waiting for you. This is intentional and signals it's your turn to act.\n\n## Training\n\nCodeAssist continuously records your interactions while the web UI is running. To complete an episode and train your model, press `Ctrl+C` in the terminal where CodeAssist is running.\n\nYou do not need to successfully solve a LeetCode problem to train the model. You can stop recording the episode by leaving the CodeAssist web UI, returning to the terminal CodeAssist is running in, and using the `ctrl+c` command to start training.\n\nDuring training, CodeAssist will:\n- Compare your edits to the assistant's actions\n- Calculate rewards and penalties based on your interactions\n- Update your local model checkpoint\n- Store new model weights under `persistent-data/trainer/models`\n- Upload your trained model to Hugging Face (if a valid token is provided)\n\nAfter training completes (which takes a few minutes depending on your system), you can restart CodeAssist to use your updated model trained on your most recent episode.\n\n### Best Practices\n\n- **Be patient**: The assistant watches your typing and timing. Working too quickly or aggressively correcting can neutralize training efficacy.\n- **Treat it as a collaborator**: Let it naturally interject code and keep useful code around briefly before editing or removing.\n- **Don't delete everything instantly**: If you delete everything it writes right away, you're teaching it to stop acting altogether.\n- **Record multiple varied problems**: Diversify its learning signals by working on different problems.\n- **Expect gradual improvement**: Early episodes may feel inconsistent. Improvement becomes clearer after 4-5 episodes of training.\n\n# Troubleshooting\n\n## Exception: Container \u003ccontainer-name\u003e is unhealthy.\n\nThis occurs when a container fails to boot. You can view the logs by running `docker logs \u003ccontainer-name\u003e`. Please review and upload the logs when creating a new issue.\n\n## Error connecting to Docker daemon\n\n```\n2025-09-04 15:03:47,975 - ERROR - Error connecting to Docker daemon: Error while fetching server API version: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))\n2025-09-04 15:03:47,976 - ERROR - Please ensure Docker is installed and running.\n```\n\nIf you see lines like the above, it means Docker is not running, or you do not have permission to connect to Docker. Make sure Docker is properly installed on your system and running.\n\n## Bind for 0.0.0.0:3000 failed: port is already allocated\n\nThis occurs when there is already a Docker container running that uses port 3000.\nYou have two options:\n1.  Stop the other service that is using the port (e.g., if you are running RL Swarm).\n2.  Run CodeAssist on a different port using the `--port` argument:\n\n```bash\n  uv run run.py --port 3001\n```\n\u003e **Note:** When choosing a new port, please avoid `8000`, `8080`, `8001`, `8008`, `3003`, and `11434`, as they are reserved for other CodeAssist services.\n\n# Contributing\n\nWe welcome contributions!\n\n## Pre-Commit Hook\n\nWe use a pre-commit hook to run linting on the repository before committing. You can install `pre-commit` as described below:\n\n### Installing `pre-commit`\n\nTo install `pre-commit`, simply run the below command\n\n```bash\npip install pre-commit\n```\n\n### Setting up `pre-commit`\n\nTo set up `pre-commit`, run this command\n\n```bash\npre-commit install\n```\n\n## Formatting\n\nThis repository is formatted with `ruff format`. Any commits which do not meet Ruff's lint checks will have GitHub actions fail, and will need to be fixed before merging.\n\n# License\n\nCodeAssist is released under the (MIT) license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fysocrius%2Fgitpod_codeassist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fysocrius%2Fgitpod_codeassist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fysocrius%2Fgitpod_codeassist/lists"}