--- language: en library_name: codev tags: - code-assistant - terminal - ai --- # Codev: Co-Dev with AI via Terminal ![TypeScript](https://img.shields.io/badge/-TypeScript-3178C6?style=flat-square&logo=typescript&logoColor=white) ![Bun](https://img.shields.io/badge/-Bun-000000?style=flat-square&logo=bun&logoColor=F9F9FB) ![Arch Linux](https://img.shields.io/badge/-Arch%20Linux-1793D1?style=flat-square&logo=arch-linux&logoColor=white) ![CLI](https://img.shields.io/badge/-CLI-000000?style=flat-square&logo=gnu-bash&logoColor=white)
Codev
## πŸ“’ News - **2026-07-08** πŸ–ΌοΈ Image Search & Render Hardening β€” WebSearchTool now exposes an explicit `search_images` flag that routes to SearXNG while Tavily handles general search; ImageShowTool downloads URLs to temp files and passes them to timg by path, fixes kitty protocol concurrency corruption (in-band sequences are now non-concurrent), and computes dimensions from terminal height with aspect-ratio-aware width. - **2026-07-04** πŸ–ΌοΈ Inline Terminal Images β€” Native Kitty graphics protocol rendering via timg; WebSearch, WebFetch, and LocationTool results now display inline images directly in the TUI with cursor-safe hide/show and dynamic row layout. - **2026-07-01** πŸ—ΊοΈ LocationTool unlimited search β€” Amap places search now paginates (1000/page, up to 10000 results); Google Places uses `next_page_token` (up to 60); photo limits removed. - **2026-06-22** πŸ”Š Groq Whisper STT β€” CLI `/voice` now uses Groq Whisper API (cloud whisper-large-v3, no Python needed) and `node-edge-tts` for TTS, matching Friend's stack. - **2026-06-21** πŸŽ™οΈ Groq Free STT β€” Friend voice input now supports Groq Whisper API as STT provider; TypeScript-only, no Python subprocess required. - **2026-06-21** πŸ–₯️ Friend Desktop β€” `/friend start` launches a Tauri desktop VRM companion app with full-screen mode, real-time TTS/STT, and inter-process communication. - **2026-06-21** 🎀 Microphone Fix β€” Resolved Microphone access denied in WebKitGTK; switched to arecord/parecord subprocess audio capture. - **2026-06-20** πŸ€– /friend Command β€” In-process VRM companion service: SSE broadcast, voice capture (push-to-talk + streaming), Edge TTS / Qwen TTS, and persona generation from VRM screenshot. - **2026-06-19** πŸ“‹ /release-notes β€” New command to display version release notes and what's new. - **2026-06-15** 🎯 Goal Tracking β€” New `/goal` command with prompt input footsider and lastline display for real-time goal tracking. - **2026-06-15** πŸ–ΌοΈ WebSearch Image Preview β€” WebSearch markdown now displays inline image links natively. - **2026-06-15** πŸ”Š Feishu Voice β€” Feishu integration now supports both VoxCPM and Edge-TTS voice synthesis. - **2026-06-15** πŸ“ Feishu Markdown β€” Feishu bot messages render with full markdown styling. - **2026-06-15** πŸ€– Feishu Connect β€” New Feishu (飞书) bot integration with message relay and voice TTS. - **2026-06-14** πŸ“± Desktop Provider Sync β€” Desktop now syncs provider config from TUI; model list uses sidecar proxy to avoid CORS. - **2026-06-14** πŸ›‘οΈ NVIDIA Sidecar Fix β€” Use sidecar for NVIDIA, direct fetch for OpenRouter/OpenCode. - **2026-06-13** πŸ—£οΈ Voice CN/TW β€” Added Chinese (zh-CN) and Taiwanese (zh-TW) voice support for TTS. - **2026-06-02** 🀝 Agent Team β€” Multi-agent collaboration via Tmux backend with teammate layout manager, dynamic team scaling, and spawn utilities for coordinated task execution. - **2026-06-01** 🧩 SubAgent Swarm Topology β€” Dedicated Explore πŸ”, Plan πŸ“‹, and Verification πŸ§ͺ subagents for autonomous multi-step task decomposition and execution. - **2026-05-25** πŸ€– AI Friend on Desktop β€” Companion mode with `real-time audio/video`, avatar & background image upload, edge glow effect on transcript, and localStorage persistence. - **2026-05-25** πŸ–₯️ Desktop app launched β€” Tauri-based native UI with sidebar, tabs, title bar, and session management. Subagent inherits parent class config. Branding updated to Versper AI. - **2026-05-23** 🧘 Added OpenCode Zen Provider β€” a new model provider for calm, focused AI interactions. - **2026-05-22** πŸ”§ Fixed OpenCode login flow and refined prompt identity for clearer agent behavior. - **2026-05-08** πŸ› Fixed model list not refreshing after `/login` opencode freemodel exit; subagent creation now works without API key in free mode. - **2026-05-06** πŸš€ Added OpenCode as a free provider β€” includes GPT-5 Nano and Big Pickle πŸ₯’ models, `/model` list with life-free model display, and auto-refresh. Introduced ctx_line context tracking with online persistence. Better collapsing fetch results and auto-compact documentation polish. Merged PR #6 for Tavily search backend migration. - **2026-04-30** πŸ” Added Tavily as optional search backend in WebSearchTool via PR #6. - **2026-04-24** 🧹 Cleaned up empty contributor docs. - **2026-04-21** πŸ›‘οΈ Fixed auto-compact env in settings.json; Codev now handles Ctrl+C resume gracefully. - **2026-04-20** πŸ“ Documented ToolSearch behavior and table formatting. - **2026-04-19** πŸ“– Described auto-dream and subagent features in README; punctuation and layout polish. Tagged **v2.0.1** 🏷️. - **2026-04-18** πŸ’­ Snapshot auto-dream feature; ToolSearch now uses WebSearch under the hood. - **2026-04-15** πŸŒ™ Auto Dream β€” AI autonomously reflects and builds internal memory. Fixed chatId overflow by migrating from Number to String. - **2026-04-13** 🧠 All tools allowed in auto mode without classifier; auto-compact triggers on context size exceeded; ToolSearch enabled by default for all providers; OpenRouter full model loading. Tagged **v2.0.0** 🏷️. - **2026-04-12** ⚑ Live refresh typing status; WebFetch now supports shouldDefer for lazy loading; symbol links documented as usable everywhere. - **2026-04-09** 🎨 Major README overhaul β€” VersperAI branding with Banner & Logo, tabular layout, websearch/webfetch documentation, TypeScript main branch vs Python legacy explained. Tagged **v2.0.0** 🏷️. - **2026-04-08** 🌐 Full WebSearch toolchain β€” SearXNG integration, Jina AI websearch & fetch, WebFetch UI notes, build fix. Four search approaches landed in one day. - **2026-04-07** πŸ” Zero-search prototype; Python env removed; TLS-enabled web search working end-to-end. - **2026-04-06** πŸ› οΈ Open ripgrep via USE_BUILTIN_RIPGREP=0; WebFetch UI notes; skill message renamed; WebSearch API error fixed. - **2026-04-05** πŸ€– AutoMode β€” autonomous decision-making execution mode. `/sandbox` with sandbox-runtime @0.0.44. Project renamed to codev. OpenRouter ↔ Local model switching, auto-refresh TUI, Telegram `/login` local model transition. - **2026-04-04** πŸ“± Telegram backend β€” `/telegram` command, interactive commands, message receiving in TUI, chatId overflow fixed. `/buddy` companion mode; recent activity in individual directories. - **2026-04-03** πŸ”„ Reborn as verspercode **v0.1.0** β€” complete `/login` system (OpenRouter + local models), `/model` search & UI, free OpenRouter model auto-load, onboarding flow. Local model filesystem-based provider.
Earlier news - **2026-04-01** 🧹 Removed autoresearch, evolve modules, and Cursor scripts β€” streamlining toward v2. Tagged **v1.0.0** 🏷️. - **2026-03-31** πŸ–₯️ CLI update for better terminal interaction. - **2026-03-30** πŸ› Fixed error type-in when using `/resume` session. - **2026-03-29** 🧠 Memory routing β€” route-runtime-long_term for persistent context. CLI shell split to <10K lines. Browser vision click/control fixes. Paper GIF in README; --paper API call optimization. - **2026-03-28** πŸ“„ Academic paper pipeline β€” `/evolve` autonomous evolution, `/compact` context compression, LaTeX paper template, main.pdf compilation. Chrome-based research v1.0. - **2026-03-27** πŸ”¬ Research workflow β€” `/paper` and `/code` commands, 4-step research + autoresearch, ANN vector index, hybrid retrieval with semantic cache, external memory, token-budgeted evidence pipeline, IncompleteRead retry, long-term index cache. Workflows engine, `/resume` session toggle, CLI UI refresh. - **2026-03-26** πŸ—οΈ Configuration overhaul β€” YAML β†’ JSON + .env + TOML. Clean config dir. - **2026-03-24** 🌐 Browser control β€” Chrome DevTools MCP integration, WeChat gateway, Telegram gateway. Setup wizard, README with demo GIF, version menu. - **2026-03-22** πŸŽ‰ Initial commit β€” codev **v0.1.0** born.
## πŸ“¦ Install ```bash # script install curl -fsSL https://huggingface.co/chenbhao/codev/raw/main/install.sh | bash # source install git clone https://huggingface.co/chenbhao/codev && cd codev && bun install && bun run build && codev # if want global use bin file # cp dist/codev ~/.local/bin ln -sf dist/codev ~/.local/bin/codev # then can use Codev in everywhere after `/login` ``` ### Git LFS & Xet (faster large-file transfer) Asset files (images, screenshots) are tracked via Git LFS. Install the **git-xet** custom transfer agent to replace the standard LFS protocol with Xet's chunk-dedup transport for much faster push/pull: ```bash curl --proto '=https' --tlsv1.2 -sSf \ https://raw.githubusercontent.com/huggingface/xet-core/refs/heads/main/git_xet/install.sh | sh git xet install ``` After setup, use normal git workflow β€” `git-xet` automatically handles LFS objects: ```bash git lfs pull # download all large files ``` ## πŸš€ Quick Start > [!IMPORTANT] > If you no need `auto-compact / dream / control context-window` > and `websearch` feature. you can no configuration anything > > if you no need free `local-websearch` you can skip config `searxng`` > and just set`TAVILY_API_KEY` in env ```bash # Maximum_Context_Window = min(CLAUDE_CODE_MAX_CONTEXT_TOKENS, CLAUDE_CODE_AUTO_COMPACT_WINDOW) - 20000 # set 200k env in ~/.claude/settings.json or terminal # the 20k is used to compact as buffer band # set tool_search env # set agentteam in tmux { "env": { "USER_TYPE": "ant", "CLAUDE_CODE_MAX_CONTEXT_TOKENS": "200000", "CLAUDE_CODE_AUTO_COMPACT_WINDOW": "200000", "ENABLE_TOOL_SEARCH": "true", "TAVILY_API_KEY": "", # "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "0", default 1 "teammateMode": "tmux", # or in-process "groqApiKey": "gsk_" # https://console.groq.com # map locationtool "AMAP_API_KEY": "b_", "GOOGLE_MAPS_API_KEY": "AI_" } # set auto-dream config "autoMemoryEnabled": true, "autoDreamEnabled": true, # stt-tts support zh-CN # TW girl voice "voiceLanguage": "zh-TW", "voiceTTSVoice": "zh-TW-HsiaoChenNeural" # CN girl voice "voiceLanguage": "zh-CN", "voiceTTSVoice": "zh-CN-XiaoxiaoNeural" } ``` ```bash # Config SearXNG # 1. docker configuration # local config search engine - searxng in archlinux # make sure have install docker and docker-compose sudo pacman -S docker-compose && docker docker --version && docker compose version sudo usermod -aG docker $USER # make sure open pc and now start docker daemon sudo systemctl enable --now docker # 2. docker-compose pull # use VersperSearch a pre-build docker config in https://github.com/chenbhao/VersperSearch # or install searxng in docker-compose by yourself curl -fsSL \ -O https://raw.githubusercontent.com/searxng/searxng/master/container/docker-compose.yml \ -O https://raw.githubusercontent.com/searxng/searxng/master/container/.env.example # add json source in formats behind html - jsonl in 87 lines cd searxng/core-config/ && sudo nvim settings.yml # start searxng engine docker compose up -d # 3. check search feature # check in every browser firefox http://localhost:8080 ``` ```bash # test HTTP_PROXY=http://127.0.0.1:8888 HTTPS_PROXY=http://127.0.0.1:8888 mitmproxy -p 8888 ``` ```bash # /voice "voiceTTSVoice": "zh-TW-HsiaoChenNeural", "voiceLanguage": "zh-TW", # /imageshow sudo pacman -S timg # node-edge-tts # local whisper-stt uv venv uv pip install faster-whisper edge-tts voxcpm hf download Systran/faster-whisper-base \ --local-dir ~/.cache/huggingface/hub/models--Systran--faster-whisper-base ``` ## ✨ Features ### ImageShow On Terminal
### Agent Team and View via Tmux
### Auto Compact & Dream & SubAgent #### 🧠 Core Mechanisms of Cycle Long Run - Auto Compact β€” Automatically optimizes and compresses historical context to bypass sequence length bottlenecks. - Dream β€” Asynchronously distills operational data into long-term insights. #### πŸ—‚οΈ SubAgent Swarm Topology | SubAgent Type | Core Responsibility | | :--- | :--- | | πŸ›‘οΈ **General-Purpose** | Orchestrates routing, high-level user interaction, and dispatching. | | πŸ” **Explore** | Conducts deep semantic search and autonomous tool discovery. | | πŸ“‹ **Plan** | Handles multi-step chain-of-thought strategy and task decomposition. | | πŸ§ͺ **Verification** | Executes automated runtime validation, assertion checks, and fault tolerance. |
### WebSearch & WebFetch Tools