{"id":50630740,"url":"https://github.com/brentfarris/echo","last_synced_at":"2026-06-08T23:01:11.104Z","repository":{"id":362103038,"uuid":"1257272743","full_name":"BrentFarris/echo","owner":"BrentFarris","description":"Local AI / LLM harness for real programmers","archived":false,"fork":false,"pushed_at":"2026-06-05T21:58:05.000Z","size":2752,"stargazers_count":9,"open_issues_count":7,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-06T21:05:19.365Z","etag":null,"topics":["ai","ai-agents","ai-assistant","ai-harness","coding","programming"],"latest_commit_sha":null,"homepage":"","language":"Go","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/BrentFarris.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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-06-02T14:21:06.000Z","updated_at":"2026-06-05T21:58:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/BrentFarris/echo","commit_stats":null,"previous_names":["brentfarris/echo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BrentFarris/echo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrentFarris%2Fecho","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrentFarris%2Fecho/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrentFarris%2Fecho/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrentFarris%2Fecho/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BrentFarris","download_url":"https://codeload.github.com/BrentFarris/echo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrentFarris%2Fecho/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34039495,"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-07T02:00:07.652Z","response_time":124,"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":["ai","ai-agents","ai-assistant","ai-harness","coding","programming"],"created_at":"2026-06-06T21:03:18.270Z","updated_at":"2026-06-07T22:00:55.857Z","avatar_url":"https://github.com/BrentFarris.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Echo\n\nEcho is a local-first programmer's AI harness. it's made for serious/actual programmers. It's design is to allow you to work with your AI on creating and modifying program code. You can break down large ideas into Kanban tasks for the AI to execute. You can easily review all code changes, you can even manually write code directly using Echo.\n\nUse local models like Qwen, Gemma, Deepseek, and others; and I only intend to use local models. VS Code sucks hard with local models, it errors and times out all the time. This software fixes that and adds special features that I use for development, like the LLM Kanban board.\n\n## Features\nThere are 2 primary features that make up Echo. A Kanban board for large tasks and features, and a code editor for fine tuning and working with individual functions and routines. See [the wiki](https://github.com/BrentFarris/echo/wiki) for some tips and the list of hotkeys.\n\n### Kanban\nThe Kanban view has a chat for you to come up with a plan for implementing a feature. Once the plan in the chat looks good, you just click the decompose chat button to have the LLM break it down into tasks. Tasks will show up in the Kanban view, you can review them and if you like the plan, you can run the Kanban cards.\n\n![kanban](docs/screenshots/kanban-steps.png)\n1. Devise a plan\n2. Break the plan down into tasks\n3. Have the AI execute the tasks\n\n### Code Editor\nSometimes I just want to look at a function in the code and chat with the AI directly about that line or to implement a specific line. I don't go full vibe code on my projects, I do like to control the direction of my main projects, this helps do that.\n\n![code editor](docs/screenshots/code-editor-steps.png)\n1. Search for files\n2. File/folder list to find files\n3. Inline chat with the selected file (including edits)\n\n## Requirements\n\n- Go 1.24 or newer\n- Node.js and npm\n- Wails v2 CLI\n- An OpenAI-compatible chat completions endpoint\n\n## Run In Development\n\n```powershell\nwails dev\n```\n\nEcho stores app state in the current user's config directory at `Echo/state.json`. Chat messages, live agent traces, and Kanban cards are kept in memory only and are cleared when the app closes. Settings and workspaces persist between launches.\n\n## Configure\n\nOpen Settings from the left gutter and set:\n\n- `Endpoint`: base URL for an OpenAI-compatible API, for example `http://localhost:11434/v1`\n- `Model`: model name accepted by the endpoint\n- Generation options: temperature, top-k, top-p, context length, max tokens, penalties, and timeout\n\nIf the endpoint is offline or invalid, Echo shows a recoverable error in the UI and records the failure in chat or card progress.\n\n## Test\n\nRun backend tests:\n\n```powershell\ngo test ./...\n```\n\nRun the frontend production build:\n\n```powershell\ncd frontend\nnpm run build\n```\n\nRun the Wails production build:\n\n```powershell\nwails build\n```\n\n## Manual Smoke Flow\n\n1. Start Echo and confirm a fresh install opens without existing settings.\n2. Save endpoint and model settings.\n3. Add a workspace from the left gutter.\n4. Ask Echo to inspect or plan work in chat.\n5. Execute the visible plan and confirm Ready cards are created.\n6. Run Kanban agents and confirm cards move through In Progress and Done, or Blocked with a clear error.\n7. Open a card while it runs and confirm progress streams only while the detail view is open.\n8. Check light and dark system themes.\n\n## Windows Packaging\n\nWindows assets live under `build/windows`:\n\n- `icon.ico`\n- `info.json`\n- `wails.exe.manifest`\n\nThe app name and output executable are configured in `wails.json`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrentfarris%2Fecho","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrentfarris%2Fecho","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrentfarris%2Fecho/lists"}