Command-line interface for the Codicent API
Project description
Codicent CLI
Codicent CLI is a command-line interface for interacting with the Codicent API. It provides both one-shot command execution and interactive chat sessions with comprehensive error handling and user-friendly features.
Features
- One-shot mode: Execute single commands and get responses
- Interactive mode: Continuous chat sessions with conversation tracking
- Message types: Support for regular chat and @-prefixed info messages
- Input flexibility: Command arguments, stdin pipes, or interactive prompts
- Rich output: Markdown-formatted responses with beautiful terminal UI
- Error handling: Comprehensive error messages and graceful failure handling
- Logging: Configurable logging levels for debugging
Installation
Prerequisites
- Python 3.6 or higher
pip(Python package installer)
Quick Installation
# Install from PyPI
pip install codicent-py codicent-cli
Development Installation
Steps
-
Clone the repository:
git clone https://github.com/izaxon/codicent-cli.git cd codicent-cli
-
Install in development mode:
pip install -e .
Direct Installation from GitHub
You can also install directly from GitHub:
# Install the latest version
pip install git+https://github.com/izaxon/codicent-cli.git
# Install a specific version
pip install git+https://github.com/izaxon/codicent-cli.git@v0.4.8
Usage
Basic Setup
- Set the
CODICENT_TOKENenvironment variable with your Codicent API token:export CODICENT_TOKEN="YOUR_API_TOKEN"
Command Options
codicent [OPTIONS] [QUESTION]
OPTIONS:
-t, --interactive Start interactive chat mode
-h, --help Show help message
-v, --version Show version information
--verbose Enable verbose logging
--quiet Suppress non-essential output
Examples
One-shot questions:
codicent "What can you help me with?"
codicent "Explain Python decorators"
Interactive mode:
codicent -t
# or
codicent --interactive
Piped input:
echo "What is machine learning?" | codicent
codicent < questions.txt
cat code.py | codicent "Review this code"
Info messages (@ prefix):
codicent "@mention This is an info message"
With logging:
codicent --verbose "Debug this issue"
codicent --quiet "Silent operation"
Interactive Mode
In interactive mode, you can have ongoing conversations with enhanced visual clarity:
$ codicent -t
๐ค Codicent CLI Interactive Mode
Type your questions or use Ctrl+C to exit.
Prefix with @ for info messages.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ยค What is Python?
Python is a high-level, interpreted programming language known for its
simplicity and readability. It was created by Guido van Rossum and first
released in 1991.
Key features:
โข Easy to learn and use
โข Extensive standard library
โข Cross-platform compatibility
โข Strong community support
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ยค Can you give me an example?
Here's a simple Python example:
# Hello World in Python
print("Hello, World!")
# Working with variables
name = "Alice"
age = 25
print(f"My name is {name} and I am {age} years old.")
Python's syntax is clean and intuitive!
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ยค @mention Save this conversation
โ
Message posted successfully.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ยค ^C
๐ Goodbye!
Visual Features:
- Colored messages: User input appears in cyan, bot responses in green
- Clean prompting: Original
ยคprompt character maintained - Visual separators: Clear lines between conversations
- Rich formatting: Markdown responses with syntax highlighting
- Status indicators: Animated thinking indicators and success messages
- Emojis: Friendly visual cues throughout the interface
Error Handling
The CLI provides helpful error messages for common issues:
- Missing token: Clear instructions on setting up
CODICENT_TOKEN - Network errors: Graceful handling of connection issues
- API errors: Detailed error messages from the Codicent API
- Input validation: Prevents empty or overly long inputs
- Keyboard interrupts: Clean exit handling
Development
Running Tests
python -m pytest test_app.py -v
Project Structure
app.py- Main application logic (single-file architecture)test_app.py- Comprehensive test suitesetup.py- Package configurationrequirements.txt- Dependencies (now uses PyPI packages)
Dependencies
- codicent-py: Core API client for Codicent services (now available on PyPI)
- rich: Terminal formatting, markdown rendering, and animations
Troubleshooting
Common Issues
-
"CODICENT_TOKEN environment variable is not set"
- Set the token:
export CODICENT_TOKEN="your_token" - Verify it's set:
echo $CODICENT_TOKEN
- Set the token:
-
"Network error: Unable to connect to Codicent API"
- Check your internet connection
- Verify the Codicent API is accessible
- Try again with
--verbosefor more details
-
"Failed to initialize Codicent API client"
- Verify your token is valid
- Check if the codicent-py package is properly installed
Getting Help
- Use
codicent --helpfor usage information - Use
codicent --verbosefor detailed logging - Check the Codicent documentation for API details
License
This project is licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
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 codicent_cli-0.7.0.tar.gz.
File metadata
- Download URL: codicent_cli-0.7.0.tar.gz
- Upload date:
- Size: 16.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c69ae40d58b97f5dd5eb24d73bb5f62e832afce61e0bc8e21199a5cc1d6570d1
|
|
| MD5 |
f41e188a4777f25102229f859ad54bed
|
|
| BLAKE2b-256 |
6b04aac447f42f1f43c489bd919869e84777b7af9208d2172fa8f4983fbad4c2
|
File details
Details for the file codicent_cli-0.7.0-py3-none-any.whl.
File metadata
- Download URL: codicent_cli-0.7.0-py3-none-any.whl
- Upload date:
- Size: 15.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b98b14b4b1fb430f1cb04e2fa80fdd6cc650b230772d8d9da18d9aba5791771
|
|
| MD5 |
43c511d4aadbb11940040272a0f840f9
|
|
| BLAKE2b-256 |
b1715ea7b404af4100939295fec16aefe1238cdb1ffca5d8dfea60cca11c5a80
|