cecli logo

`cecli` is yet another cli agent crafted for extensibility and customization. For folks who like seeing under the hood, welcome to the fold. Made for nerds, geeks, and the extremely curious. ### Links [Documentation](https://cecli.dev/docs/) [Discord Chat](https://discord.gg/AX9ZEA7nJn) [Issue Queue](https://github.com/cecli-dev/cecli/issues) ## Installation Instructions All installation methods export a `cecli` command that can start the application. This project can be installed using several methods: #### Linux & Mac Use curl to download the script and execute it with sh: ```bash curl -LsSf https://cecli.dev/install.sh | sh ``` If your system doesn't have curl, you can use wget: ```bash wget -qO- https://cecli.dev/install.sh | sh ``` #### Windows ```powershell powershell -ExecutionPolicy ByPass -c "irm https://cecli.dev/install.ps1 | iex" ``` ### Package Installation ```bash uv pip install --native-tls cecli-dev ``` or ```bash pip install cecli-dev ``` ### Tool Installation ```bash uv tool install --native-tls --python python3.12 cecli-dev ``` Use the tool installation so cecli doesn't interfere with your development environment ## Features and Documentation: * [Agent Mode](https://github.com/cecli-dev/cecli/blob/main/cecli/website/docs/config/agent-mode.md) * [MCP Configuration](https://github.com/cecli-dev/cecli/blob/main/cecli/website/docs/config/mcp.md) * [Skills](https://github.com/cecli-dev/cecli/blob/main/cecli/website/docs/config/skills.md) * [Subagents](https://github.com/cecli-dev/cecli/blob/main/cecli/website/docs/config/subagents.md) * [Persistent Memory](https://github.com/cecli-dev/cecli/blob/main/cecli/website/docs/config/persistent-memory.md) * [Session Management](https://github.com/cecli-dev/cecli/blob/main/cecli/website/docs/sessions.md) * [Hooks](https://github.com/cecli-dev/cecli/blob/main/cecli/website/docs/config/hooks.md) * [TUI Configuration](https://github.com/cecli-dev/cecli/blob/main/cecli/website/docs/config/tui.md) * [Agent Client Protocol (ACP)](https://github.com/cecli-dev/cecli/blob/main/cecli/website/docs/config/api.md) * [Workspaces](https://github.com/cecli-dev/cecli/blob/main/cecli/website/docs/config/workspaces.md) * [Custom Commands](https://github.com/cecli-dev/cecli/blob/main/cecli/website/docs/config/custom-commands.md) * [Custom System Prompts](https://github.com/cecli-dev/cecli/blob/main/cecli/website/docs/config/custom-system-prompts.md) * [Custom Tools](https://github.com/cecli-dev/cecli/blob/main/cecli/website/docs/config/agent-mode.md#creating-custom-tools) * [Advanced Model Configuration](https://github.com/cecli-dev/cecli/blob/main/cecli/website/docs/config/model-aliases.md#advanced-model-settings) [Additional Documentation](https://cecli.dev/) ## Project Roadmap/Goals 1. **Base Asynchronicity (cecli coroutine-experiment branch)** * [x] Refactor codebase to have the main loop run asynchronously * [x] Update test harness to work with new asynchronous methods 2. **Repo Map Accuracy** - [Discussion](https://github.com/cecli-dev/cecli/issues/45) * [x] [Bias page ranking toward active/editable files in repo map parsing](https://github.com/Aider-AI/aider/issues/2405) * [x] [Include import information in repo map for richer context](https://github.com/Aider-AI/aider/issues/2688) * [x] [Handle non-unique symbols that break down in large codebases](https://github.com/Aider-AI/aider/issues/2341) 3. **Context Discovery** - [Discussion - Done with Cymbal Library](https://github.com/cecli-dev/cecli/issues/46) * [x] Develop AST-based search capabilities * [x] Enhance file search with ripgrep integration * [x] Implement RAG (Retrieval-Augmented Generation) for better code retrieval * [x] Build an explicit workflow and local tooling for internal discovery mechanisms 4. **Context Delivery** - [Discussion](https://github.com/cecli-dev/cecli/issues/47) * [x] Use workflow for internal discovery to better target file snippets needed for specific tasks (ExploreCode and ReadRange) * [x] Add support for partial files and code snippets in model completion messages * [x] Update message request structure for optimal caching 5. **TUI Experience** - [Discussion](https://github.com/cecli-dev/cecli/issues/48) * [x] Add a full TUI (probably using textual) to have a visual interface competitive with the other coding agent terminal programs * [x] Re-integrate pretty output formatting * [x] Implement a response area, a prompt area with current auto completion capabilities, and a helper area for managing utility commands 6. **Agent Mode** - [Discussion](https://github.com/cecli-dev/cecli/issues/111) * [x] Renaming "navigator mode" to "agent mode" for simplicity * [x] Add an explicit "finished" internal tool * [x] Add a configuration json setting for agent mode to specify allowed local tools to use, tool call limits, etc. * [x] Make the system prompts more aggressive about removing unneeded files/content from the context * [x] Add a plugin-like system for allowing agent mode to use user-defined tools in simple python files * [x] Add a dynamic tool discovery tool to allow the system to have only the tools it needs in context 7. **Sub Agents** * [x] Add `/invoke-agent` command to manually branch a sub agent and return a summary to the main context * [x] Add an instance-able view of the conversation system so sub agents get their own context and workspaces * [x] Modify coder classes to have discrete identifiers for themselves/management utilities for them to have their own slices of the world * [x] Refactor global files like todo lists to live inside instance folders to avoid state conflicts * [x] Add a `Delegate` tool that launches a sub agent as a background command that the parent model waits for to finish * [x] Add visibility into active sub agent calls in TUI 8. **Hooks** * [x] Add hooks base class for user defined python hooks with an execute method with type and priority settings * [x] Add hook manager that can accept user defined files and command line commands * [x] Integrate hook manager with coder classes with hooks for `start`, `end`, `on_message`, `end_message`, `pre_tool`, and `post_tool` 9. **Efficient File Editing** * [x] Explore use of hashline file representation for more targeted file editing * [x] Assuming viability, update SEARCH part of SEARCH/REPLACE with hashline identification (Done with new edit format) * [x] Update agent mode edit tools to work with hashline identification * [x] Update internal file diff representation to support hashline propagation 10. **Dynamic Context Management (Accomplished with subagents, orchestrate, and the facts db)** * [x] Update compaction to use observational memory sub agent calls to generate decision records that are used as the compaction basis * [x] Persist decision records to disk for sessions with some settings for managing lifetimes of such persistence * [x] Integrate RLM-like facility to extract information from decision records on disk and other definable notes * [x] Add a "describe" tool that launches a sub agent workflow that populates an RLM call's context with: * Current Conversation History * Past Decision Records * Repo Map Found Files 11. **Quality of Life** * [ ] Add hot keys support for running repeatable commands like switching between preferred models * [ ] Unified error message logging inside of `.cecli` directory ### All Contributors (Both Cecli and Aider main)
@paul-gauthier @dwash96 @tekacs @ErichBSchulz
@ei-grad @joshuavial @chrisnestrud @chr15m
@johbo @fry69 @quinlanjager @caseymcc
@shladnik @jamwil @itlackey @tomjuggler
@szmania @vk4s @titusz @bphd
@daniel-vainsencher @1broseidon @akaihola @jalammar
@schpet @iamFIREcracker JV @KennyDizi
@ivanfioravanti @mdeweerd @itsmeknt @fahmad91
@cheahjs @youknow04 @pjcreath @pcamp
@miradnanali @o-nix Jonathan Ellis @codeofdusk
@claui @jpshackelford @Taik @Hambaobao
@therealmarv @muravvv @hypn4 @gmoz22
@contributor @ctoth @thehunmonkgroup @gcp
@sentienthouseplant @ktakayama @lreeves @nims11
@preynal @tgbender @apaz-cli Alexander Kjeldaas
@zhyu Yutaka Matsubara @burnettk @cryptekbits
@deansher @kennyfrc @lentil32 @malkoG
@mubashir1osmani @TimPut @zjy1412 @savioursho
@jayeshthk @susliko @FeepingCreature @misteral
@aelaguiz @DhirajBhakta @gopar @eltociear
@tao12345666333 @jpshack-at-palomar @smh @nhs000
@sannysanoff @ryanfreckleton @mbokinala @yamitzky
@mobyvb @ozapinq @nicolasperez19 @varchasgopalaswamy
@ffluk3 @tanavamsikrishna @tylersatre @pcgeek86
@tamirzb @taha-yassine @strayer @StevenTCramer
@Skountz @sestrella @rnevius @holoskii
@Netzvamp @peterhadlaw @pauldw @paulmaunders
@omri123 @MatthewZMD @mbailey @golergka
@matfat55 @mtofano @maledorak @mlang
@marcomayer @you-n-g wangboxue @rti
@prmbiy @omarcinkonis @Oct4Pie @mark-asymbl
@yazgoo michal.sliwa @mdklab @mario7421
liam.liu kwmiebach @kAIto47802 @jvmncs
@hydai @hstoklosa @gordonlukch @develmusa
@coredevorg @cantalupo555 @caetanominuzzo @yzx9
@zackees @wietsevenema @krewenki @vinnymac
@szepeviktor @lattwood @spdustin @henderkes
@daysm @devriesd @daniel-sc @damms005
@curran @cclauss @cjoach @csala
@bexelbie @branchv @bkowalik @h0x91b
@aroffe99 @banjo @anjor @andreypopp
@ivnvxd @andreakeesys @ameramayreh @a1ooha
@maliayas @akirak @adrianlzt @codefromthecrypt
@aweis89 @aj47 @noitcudni @solatis
@webkonstantin @khulnasoft-bot @KebobZ @acro5piano
@josx @joshvera @jklina @jkeys089
@johanvts Jim White @gengjiawen @jevon
@jesstelford @JeongJuhyeon @jackhallam @Mushoz
@zestysoft Henry Fraser @gwpl @garrett-hopper
@filiptrplan @FelixLisczyk @evnoj @erykwieliczko
@elohmeier @emmanuel-ferdman