Skip to main content

we also can't pronounce cecli

Project description

Why cecli?

cecli (probably pronounced like "Cecily", aka aider-ce) is a community-driven fork of the Aider AI pair programming tool. Aider is a fantastic piece of software with a wonderful community but it has been painfully slow in receiving updates in the quickly evolving AI tooling space.

We aim to foster an open, collaborative ecosystem where new features, experiments, and improvements can be developed and shared rapidly. We believe in genuine FOSS principles and actively welcome contributors of all skill levels.

If you are looking for bleeding-edge features or want to get your hands dirty with the internals of an AI coding agent, here's your sign. LLMs are a part of our lives from here on out so join us in learning about and crafting the future.

Links

Discord Chat 🞄 Changelog 🞄 Issue Queue

Documentation/Other Notes:

You can see a selection of the enhancements and updates by comparing the help output:

diff -uw --color <(aider --help) <(cecli --help)

Installation Instructions

This project can be installed using several methods:

Package Installation

pip install cecli-dev

or

uv pip install --native-tls cecli-dev

The package exports a cecli command that accepts all of Aider's configuration options (and a few more!)

Tool Installation

uv tool install --native-tls --python python3.12 cecli-dev

Use the tool installation so cecli doesn't interfere with your development environment

Configuration

The documentation above contains the full set of allowed configuration options but I highly recommend using an .cecli.conf.yml file. A good place to get started is:

model: <model of your choice>
agent: true
auto-commits: true
auto-save: true
auto-load: false
cache-prompts: true
check-update: true
debug: false
enable-context-compaction: true
context-compaction-max-tokens: 0.8
env-file: .cecli.env
show-model-warnings: true
use-enhanced-map: true.p
watch-files: false
tui: true

agent-config:
  large_file_token_threshold: 8192
  skip_cli_confirmations: false

mcp-servers:
  mcpServers:
    context7:
      transport: http
      url: https://mcp.context7.com/mcp

Use the adjacent .cecli.env file to store model api keys as environment variables, e.g:

ANTHROPIC_API_KEY="..."
GEMINI_API_KEY="..."
OPENAI_API_KEY="..."
OPENROUTER_API_KEY="..."
DEEPSEEK_API_KEY="..."

Run Program

If you are in the directory with your .cecli.conf.yml file, then simply running cecli or aider-ce will start the agent with your configuration. For best results, since terminal emulators can be finicky, we highly suggest running:

cecli --terminal-setup

On first run to configure keybindings for the program (notably shift+enter). Support for terminals is ongoing so feel free to make a github issue or chat in the discord for us to figure out what's needed to support automatically setting up a given terminal.

If you want additional sandboxing, we publish a docker container that can be ran as follows:

docker pull dustinwashington/aider-ce
docker run \
  -it \
  --user $(id -u):$(id -g) \
  --volume $(pwd):/app dustinwashington/aider-ce \
  --volume $(pwd)/.aider.conf.yml:/.aider.conf.yml \
  --volume $(pwd)/.aider.env:/.aider/.env \
  --config /app/.aider.conf.yml

This command will make sure all commands ran by the coding agent happen in context of the docker container to protect the host file system from any infamous agentic mishap

Project Roadmap/Goals

The current priorities are to improve core capabilities and user experience of the cecli project

  1. Base Asynchronicity (cecli coroutine-experiment branch)
  • Refactor codebase to have the main loop run asynchronously
  • Update test harness to work with new asynchronous methods
  1. Repo Map Accuracy - Discussion
  1. Context Discovery - Discussion
  • Develop AST-based search capabilities
  • Enhance file search with ripgrep integration
  • Implement RAG (Retrieval-Augmented Generation) for better code retrieval
  • Build an explicit workflow and local tooling for internal discovery mechanisms
  1. Context Delivery - Discussion
  • Use workflow for internal discovery to better target file snippets needed for specific tasks
  • Add support for partial files and code snippets in model completion messages
  • Update message request structure for optimal caching
  1. TUI Experience - Discussion
  • Add a full TUI (probably using textual) to have a visual interface competitive with the other coding agent terminal programs
  • Re-integrate pretty output formatting
  • Implement a response area, a prompt area with current auto completion capabilities, and a helper area for managing utility commands
  1. Agent Mode - Discussion
  • Renaming "navigator mode" to "agent mode" for simplicity
  • Add an explicit "finished" internal tool
  • Add a configuration json setting for agent mode to specify allowed local tools to use, tool call limits, etc.
  • Add a RAG tool for the model to ask questions about the codebase
  • Make the system prompts more aggressive about removing unneeded files/content from the context
  • Add a plugin-like system for allowing agent mode to use user-defined tools in simple python files
  • Add a dynamic tool discovery tool to allow the system to have only the tools it needs in context

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cecli_dev-0.96.6.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cecli_dev-0.96.6-py3-none-any.whl (703.6 kB view details)

Uploaded Python 3

File details

Details for the file cecli_dev-0.96.6.tar.gz.

File metadata

  • Download URL: cecli_dev-0.96.6.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for cecli_dev-0.96.6.tar.gz
Algorithm Hash digest
SHA256 dd4501215e905323601e8727f273db12a3c01d555dee85b79c84192735afe583
MD5 c7c5ecba821f63acc44297ace71b7192
BLAKE2b-256 02c6105f2cf8e8b0a6de35e52b92d0ca4c2e0fb382a2549d26cebdd429b9729e

See more details on using hashes here.

File details

Details for the file cecli_dev-0.96.6-py3-none-any.whl.

File metadata

  • Download URL: cecli_dev-0.96.6-py3-none-any.whl
  • Upload date:
  • Size: 703.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for cecli_dev-0.96.6-py3-none-any.whl
Algorithm Hash digest
SHA256 a912984ec32b2dd47e0d57a3b454d9852870ea30c14556b2515644afd8d5ffb9
MD5 fdf4cb0e864566ab2e7d5b1025a06cb3
BLAKE2b-256 fa4f34444b8135527bf83b23b667413d26fb4ddebbe4277a568b6b9082cde70b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page