AI Coding Assistant CLI
Project description
Code Edith
A lightweight, terminal-based AI coding agent. Connects to any OpenAI-compatible API endpoint — hosted providers or self-hosted models both work.
Requirements
- Python 3.10 or higher
- An OpenAI-compatible API endpoint (e.g. OpenAI, Anthropic via proxy, Ollama, LM Studio)
- A
.envfile in your home directory (~/.env) — see Configuration
Installation
From PyPI (stable):
pip install code-edith
From GitHub (latest):
pip install git+https://github.com/sapirrior/code-edith
Configuration
Create a .env file in your home directory (~/.env) with the following variables:
EDITH_API_KEY=your_api_key
EDITH_BASE_URL=https://api.openai.com/v1
EDITH_MODEL_NAME=gpt-4o
| Variable | Description |
|---|---|
EDITH_API_KEY |
API key from your provider |
EDITH_BASE_URL |
Base URL of the OpenAI-compatible endpoint |
EDITH_MODEL_NAME |
Model identifier (e.g. gpt-4o, claude-3-5-sonnet, llama3) |
The config is read from ~/.env at startup. Edith does not touch your project files during configuration.
Usage
Navigate to the folder you want to work in, then launch Edith:
cd your-project
edith
Trust prompt. The first time you run Edith in a folder, it will ask whether you trust it. Answering y creates a .edith/TRUST marker file in the current directory. Subsequent launches in the same folder skip this step. If you answer n, Edith exits immediately without doing anything.
Once running, type your request at the >> prompt and press Enter.
Tools
Edith has four built-in tools it can invoke autonomously to complete tasks:
| Tool | What it does | Requires confirmation |
|---|---|---|
WebSearch |
Searches the web using DuckDuckGo | No |
ReadFile |
Reads a local file and returns its contents | No |
WriteFile |
Creates or overwrites a file with new content | Yes |
ShellCommand |
Runs a bash command in the current directory | Yes |
For WriteFile and ShellCommand, Edith will always pause and show you exactly what it is about to do before asking Allow? (y/n). Typing anything other than y or yes cancels the action. The model is instructed not to retry a denied action.
Commands
Type these at the prompt at any time:
| Command | Description |
|---|---|
/clear |
Clear the terminal and redraw the banner |
/copy |
Copy the last response to the clipboard |
/reset |
Wipe the conversation history (model forgets the session) |
/exit |
Exit Edith cleanly |
/help |
Show the command list |
Reporting Issues
Open an issue on the GitHub repository.
License
Apache-2.0. See LICENSE for details.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file code_edith-26.0.6.tar.gz.
File metadata
- Download URL: code_edith-26.0.6.tar.gz
- Upload date:
- Size: 17.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b61372611dec8bfbf55ec4913118870a771e305baac0d5f7d7fc27d857f9ef60
|
|
| MD5 |
a5197a78fba38dd9868da8bb9bc83909
|
|
| BLAKE2b-256 |
3a562867011e5f2b758b6dc639a2f9c80a63fcfc2d457a97edc337b9a70fe0c9
|
Provenance
The following attestation bundles were made for code_edith-26.0.6.tar.gz:
Publisher:
python-publish.yml on sapirrior/code-edith
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
code_edith-26.0.6.tar.gz -
Subject digest:
b61372611dec8bfbf55ec4913118870a771e305baac0d5f7d7fc27d857f9ef60 - Sigstore transparency entry: 1147551301
- Sigstore integration time:
-
Permalink:
sapirrior/code-edith@36c845224aa8a7b7936ec6b97bc1e17e5ca104d8 -
Branch / Tag:
refs/tags/v26.0.6 - Owner: https://github.com/sapirrior
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@36c845224aa8a7b7936ec6b97bc1e17e5ca104d8 -
Trigger Event:
release
-
Statement type:
File details
Details for the file code_edith-26.0.6-py3-none-any.whl.
File metadata
- Download URL: code_edith-26.0.6-py3-none-any.whl
- Upload date:
- Size: 26.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a16f67812b309146d905daeb353d1e167e41630b886b75f2a1e54c0aa77b774
|
|
| MD5 |
a86ac2d10bb4b0dff946d6b75e725c5d
|
|
| BLAKE2b-256 |
579de0bbf2dc9372bd0d56a808d09d26db381cf03ac943caff20f8a08d68f9ce
|
Provenance
The following attestation bundles were made for code_edith-26.0.6-py3-none-any.whl:
Publisher:
python-publish.yml on sapirrior/code-edith
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
code_edith-26.0.6-py3-none-any.whl -
Subject digest:
0a16f67812b309146d905daeb353d1e167e41630b886b75f2a1e54c0aa77b774 - Sigstore transparency entry: 1147551342
- Sigstore integration time:
-
Permalink:
sapirrior/code-edith@36c845224aa8a7b7936ec6b97bc1e17e5ca104d8 -
Branch / Tag:
refs/tags/v26.0.6 - Owner: https://github.com/sapirrior
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@36c845224aa8a7b7936ec6b97bc1e17e5ca104d8 -
Trigger Event:
release
-
Statement type: