{"id":44682866,"url":"https://github.com/verseles/codewalk","last_synced_at":"2026-06-07T08:03:24.873Z","repository":{"id":45189163,"uuid":"268690468","full_name":"verseles/codewalk","owner":"verseles","description":"A native (really fast!!) cross-platform client for OpenCode","archived":false,"fork":false,"pushed_at":"2026-05-24T03:19:55.000Z","size":51087,"stargazers_count":155,"open_issues_count":5,"forks_count":14,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-05-24T05:14:03.320Z","etag":null,"topics":["ai","anthropic","claude-code","codex","crush","dart","desktop","flutter","gemini","gemini-cli","kilo-code","mobile","openai","opencode"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/verseles.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2020-06-02T03:19:32.000Z","updated_at":"2026-05-24T03:19:59.000Z","dependencies_parsed_at":"2023-12-27T03:41:25.912Z","dependency_job_id":"ee881525-77a9-42be-b3b7-f5fa4b7ddd46","html_url":"https://github.com/verseles/codewalk","commit_stats":{"total_commits":84,"total_committers":2,"mean_commits":42.0,"dds":"0.011904761904761862","last_synced_commit":"5e0ef1213f42f114389870f95dde6516fc819cee"},"previous_names":[],"tags_count":139,"template":false,"template_full_name":null,"purl":"pkg:github/verseles/codewalk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verseles%2Fcodewalk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verseles%2Fcodewalk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verseles%2Fcodewalk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verseles%2Fcodewalk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/verseles","download_url":"https://codeload.github.com/verseles/codewalk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verseles%2Fcodewalk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33429192,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T22:14:44.296Z","status":"online","status_checked_at":"2026-05-24T02:00:06.296Z","response_time":57,"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","anthropic","claude-code","codex","crush","dart","desktop","flutter","gemini","gemini-cli","kilo-code","mobile","openai","opencode"],"created_at":"2026-02-15T05:05:32.654Z","updated_at":"2026-06-07T08:03:24.868Z","avatar_url":"https://github.com/verseles.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CodeWalk\n\n\u003e ⚠️ **Visual glitches known**: The conversation screen has some visual glitches we're working to fix. If you notice layout issues, flickering, or rendering artifacts, they are being actively addressed.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"demo-desktop.gif\" alt=\"CodeWalk desktop demo\" /\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003ehttps://github.com/user-attachments/assets/032f64e2-e8ee-4024-b49a-ca95a774653f\u003c/p\u003e\n\n\n\n\n\n![CodeWalk Logo](assets/images/logo.256.png)\n\nA native (really fast!!) cross-platform client for [OpenCode](https://github.com/anomalyco/opencode) server mode. Built with Flutter, it provides a conversational interface for session-based AI coding interactions over HTTP APIs and streaming events.\n\n## Unique Features\n\n- 🌐 Fully translated into 14 languages: English, Português (Brasil), Español, Deutsch, Français, Italiano, Русский, 中文, 日本語, 한국어, हिन्दी, বাংলা, العربية, اردو\n- 🎙 Speech-to-text on every platform, including Linux\n- 🔊 Text-to-speech read-aloud for assistant messages\n- 📊 Real-time quota monitoring for OpenCode Go, Codex, Gemini, and GitHub Copilot\n- 📈 Inline Mermaid diagram rendering from fenced markdown blocks\n- 💬 Canned answers for faster replies\n- ↩️ Easier undo and redo\n- 🧙 OpenCode setup wizard\n- 🔢 LaTeX math rendering — typeset inline and block equations via pure-Dart KaTeX port\n- 📤 Share messages as images — export any chat message as a themed PNG with native share\n- 🔐 Cloudflare Access OAuth — PKCE-based auth for servers behind Cloudflare Access\n- 📋 Session export as Markdown/JSON — full conversation export with paginated loading\n- 🖥 Server-hosted PTY terminal — embedded terminal running on the OpenCode host\n- ↩️ Inline revert to any prior turn — undo with draft restoration via official revert endpoint\n\n## Highlights\n\n- Realtime AI chat with streaming responses (SSE) and robust turn reconciliation\n- Queued `Send now` handoff without false abort error noise or duplicate chat bubbles\n- Instant session reopen with cached grouped history, direct bottom landing, and background delta-style revalidation\n- Load older message history by scrolling to the top of chat\n- Project-centric sidebar with conversations grouped by open projects\n- Context-scoped conversation pinning to keep priority sessions at top\n- Canned answers with global/project scope\n- Project context support for both Git repositories and non-Git folders\n- Per-project New Chat draft isolation with lazy session bootstrap\n- Multi-server profile management (health checks, default/active switching, auth)\n- Install and Run OpenCode Server directly from Settings\n- Model/provider selection with variants, favorites, and reasoning controls\n- In-app update flow with auto-check, startup notification, and direct install\n- Physical-keyboard productivity shortcuts, including Alt+Tab-style session cycling\n- Mobile external-keyboard send keeps composer focus for rapid follow-up input\n- Interactive server permission/question prompts with attention badges\n- Responsive Material 3 experience across Linux, Windows, macOS, Web, and Android\n- 14-language support with instant language switching, system-default detection, and RTL layout for Arabic and Urdu\n- Text-to-speech read-aloud for assistant responses with adjustable speed and pitch\n- Mermaid diagram rendering from fenced code blocks with copy-source fallback\n- Density-aware UI with 5 spacing tiers (compact → spacious) across chrome and composer\n- Smart session state restore — re-selects last agent/model/variant from message metadata\n- Reactive notification dismissal — auto-clears on SSE events, no stale alerts\n- Rich diff review surface with syntax highlighting, line gutters, and lazy hunk loading\n- Cloudflare Access OAuth with PKCE for secure enterprise reverse-proxy auth\n- Server-hosted PTY terminal streamed to client for in-app command-line access\n\n## Install in One Command\n\nInstall using the `install.cat` pattern:\n\n- Linux \u0026 macOS\n\n  ```bash\n  curl -fsSL install.cat/verseles/codewalk | sh\n  ```\n\n- Windows (PowerShell)\n\n  ```powershell\n  irm install.cat/verseles/codewalk | iex\n  ```\n\nRun the same command again any time to update/reinstall to the latest GitHub release.\n\nInstallers automatically pick the right release for your platform.\n\n- Android\n\n  Open this in your Android browser to download the APK:\n  [install.cat/verseles/codewalk](https://install.cat/verseles/codewalk)\n\n### Uninstall\n\n- Linux \u0026 macOS\n\n  ```bash\n  curl -fsSL https://raw.githubusercontent.com/verseles/codewalk/main/uninstall.sh | sh\n  ```\n\n- Windows (PowerShell)\n\n  ```powershell\n  irm https://raw.githubusercontent.com/verseles/codewalk/main/uninstall.ps1 | iex\n  ```\n\n## Getting Started\n\n### Prerequisites\n\n- Flutter SDK (\u003e=3.8.1)\n- Dart SDK\n- An OpenCode-compatible server instance\n- Platform toolchain for your target:\n  - Linux desktop: `clang`, `cmake`, `ninja`, `pkg-config`\n  - Windows desktop: build from a Windows host\n  - macOS desktop: build from a macOS host\n\n### Setup\n\n1. Install dependencies:\n\n   ```bash\n   flutter pub get\n   ```\n\n2. Run the app (examples):\n\n   ```bash\n   flutter run -d linux\n   flutter run -d chrome\n   flutter run -d android\n   ```\n\n3. Build artifacts (examples):\n   ```bash\n   flutter build linux\n   flutter build web\n   ```\n\n### Make Targets\n\n```bash\nmake check      # deps + codegen + analyze + test\nmake check-fast # deps + codegen + analyze + test-fast\nmake test-fast  # excludes slow/integration tags\nmake android    # build arm64 APK\nmake precommit  # check + android\n```\n\n### Server Configuration\n\n1. Launch the app and open **Settings** from the sidebar\n2. Tap **Add Server** and run the Quick setup command in your terminal\n3. Keep the default `Server URL` (`http://127.0.0.1:4096`) or set your server URL\n4. Configure Basic Auth only if your server requires it\n5. Save and switch active/default profiles as needed\n\n### OpenCode Project Agent\n\nWhen you run OpenCode from this repository, the repo ships a project agent at `.opencode/agents/opencodeNews.md`:\n\n- `@opencodeNews` reviews the latest OpenCode release for CodeWalk impact\n- `@opencodeNews review vX.Y.Z` or `@opencodeNews check https://github.com/anomalyco/opencode/releases/tag/...` reviews a specific release target mentioned in the same prompt\n\nThe agent returns a release summary, impact/risk by area, proposed adjustments, and an execution plan only when CodeWalk work is needed.\n\n## Architecture\n\nThe project follows Clean Architecture with three layers: Domain, Data, and Presentation. Dependency injection via `get_it`, HTTP via `dio`, state management via `provider`.\n\nFor the ADR-023 compatibility baseline and current OpenCode contract inventory, see [CONTRACT_MATRIX.md](CONTRACT_MATRIX.md).\n\nFor full technical details, see [CODEBASE.md](CODEBASE.md).\n\n## Tech Stack\n\n- **Framework:** Flutter\n- **Language:** Dart\n- **State Management:** Provider\n- **HTTP Client:** Dio\n- **Local Storage:** SharedPreferences\n- **Dependency Injection:** GetIt\n- **Design System:** Material Design 3\n\n## License\n\nThis project is dual-licensed:\n\n- **Open Source:** [GNU Affero General Public License v3.0 (AGPLv3)](LICENSE) -- free for everyone.\n- **Commercial:** A [separate commercial license](LICENSE-COMMERCIAL.md) is available for organizations with annual revenue exceeding USD 1M that wish to use the software without AGPLv3 obligations.\n\n## Origin and Acknowledgment\n\nCodeWalk is a fork of [OpenMode](https://github.com/easychen/openMode), originally created by [easychen](https://github.com/easychen). The original project is licensed under MIT.\n\nSubstantial modifications have been made since the fork, including licensing changes, code restructuring, rebranding, full English standardization, and documentation rewrites. All modifications are licensed under AGPLv3 (or the commercial license, where applicable).\n\nSee [NOTICE](NOTICE) for full attribution details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fverseles%2Fcodewalk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fverseles%2Fcodewalk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fverseles%2Fcodewalk/lists"}