Skip to main content

DurusAI CLI - Advanced AI assistant with memory, file operations, and project management like Claude Code

Project description

DurusAI Native CLI

🤖 Native CLI client for DurusAI - AI-powered development assistant

Python 3.8+ License: MIT PyPI version

Features

  • 🔐 Secure authentication with JWT tokens and keyring storage
  • 💬 Interactive chat mode with AI models (Claude, GPT-4, Gemini)
  • 🚀 Single command queries for quick AI assistance
  • 📊 Usage statistics and token tracking
  • 🔧 Multiple AI models support
  • 🎨 Rich terminal UI with markdown rendering
  • ⚙️ Configurable profiles for different environments
  • 🌐 Cross-platform (Linux, macOS, Windows)

Installation

From PyPI (Recommended)

pip install durusai

From source

git clone https://github.com/durusai/cli.git
cd cli/durusai_native_cli
pip install -e .

Development installation

pip install -e ".[dev]"

Quick Start

1. Login to DurusAI

durusai login

2. Ask a question

durusai query "Explain Python decorators"

3. Start interactive chat

durusai chat

Usage

Authentication

# Login with username/password
durusai login

# Login with specific profile
durusai login --profile work

# Check current user
durusai whoami

# Logout
durusai logout

Queries

# Single query
durusai query "How to implement binary search in Python?"

# Query with specific model
durusai query "Explain async/await" --model gpt-4

# Query with custom parameters  
durusai query "Write a FastAPI endpoint" --max-tokens 2000 --temperature 0.7

Interactive Mode

# Start interactive chat
durusai chat

# Chat with specific model
durusai chat --model claude-3-sonnet

Interactive commands:

  • /help - Show help
  • /model <name> - Switch AI model
  • /clear - Clear conversation history
  • /history - Show conversation history
  • /stats - Show session statistics
  • /quit - Exit chat mode

Models and Statistics

# List available models
durusai models

# Show usage statistics
durusai stats

# Check API health
durusai health

Configuration

# Show all settings
durusai config --list

# Set API endpoint
durusai config api_endpoint "https://api.durusai.com"

# Set default model
durusai config settings.default_model "claude-3-sonnet"

# Enable streaming responses
durusai config settings.stream_responses true

Configuration

DurusAI CLI stores configuration in ~/.durusai/:

~/.durusai/
├── config.json         # Main configuration
├── profiles/           # User profiles  
│   ├── default.json
│   └── work.json
├── cache/             # Response cache
├── history/           # Command history
└── logs/             # Application logs

Configuration Options

{
  "api_endpoint": "https://api.durusai.com",
  "default_profile": "default",
  "settings": {
    "timeout": 30,
    "retry_count": 3,
    "stream_responses": true,
    "cache_ttl": 3600,
    "auto_update": true,
    "show_token_usage": true,
    "default_model": "claude-3-sonnet-20240229",
    "max_history_size": 1000
  },
  "display": {
    "use_colors": true,
    "show_timestamps": false,
    "markdown_rendering": true,
    "pager_enabled": true
  }
}

API Models

DurusAI supports multiple AI providers:

Model Provider Context Length Status
claude-3-sonnet-20240229 Anthropic 200K
claude-3-haiku-20240307 Anthropic 200K
gpt-4 OpenAI 8K
gpt-4-turbo OpenAI 128K
gemini-pro Google 32K

Examples

Code Generation

durusai query "Create a REST API endpoint for user registration with FastAPI"

Code Explanation

durusai query "Explain this Python code" < my_script.py

Interactive Debugging

durusai chat
# Then in chat:
# User: I'm getting a TypeError in my Python code
# AI: I'd be happy to help! Please share the error and the relevant code...

Batch Processing

# Process multiple files
for file in *.py; do
  durusai query "Review this code for bugs: $(cat $file)" > "${file%.py}_review.md"
done

Environment Variables

  • DURUSAI_API_ENDPOINT - API endpoint URL
  • DURUSAI_API_TOKEN - API authentication token
  • DURUSAI_CONFIG_DIR - Configuration directory (default: ~/.durusai)
  • DURUSAI_PROFILE - Default profile name

Security

  • Tokens are stored securely using system keyring (macOS Keychain, Windows Credential Manager, Linux Secret Service)
  • Fallback encryption using Fernet for systems without keyring
  • No plaintext passwords stored locally
  • JWT tokens with automatic refresh
  • TLS/SSL for all API communications

Development

Setup

git clone https://github.com/durusai/cli.git
cd cli/durusai_native_cli
pip install -e ".[dev]"

Testing

pytest

Code formatting

black durusai/
flake8 durusai/
mypy durusai/

Building

python -m build

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Run the test suite
  6. Create a pull request

License

MIT License - see LICENSE file.

Support

Changelog

See CHANGELOG.md for release history.


Made with ❤️ by the DurusAI team

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

durusai_cli-3.4.0.tar.gz (39.5 kB view details)

Uploaded Source

Built Distribution

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

durusai_cli-3.4.0-py3-none-any.whl (35.4 kB view details)

Uploaded Python 3

File details

Details for the file durusai_cli-3.4.0.tar.gz.

File metadata

  • Download URL: durusai_cli-3.4.0.tar.gz
  • Upload date:
  • Size: 39.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for durusai_cli-3.4.0.tar.gz
Algorithm Hash digest
SHA256 97b7803c9732dcf4c3662de6cbc9e56452fb75bc72f34cfc8ccf03246f0027ec
MD5 eb33bea1ef2356005e72646389749af1
BLAKE2b-256 a8aac0c867bd3ed90f6fccd969b65ad915a9e286a127b6cc6b852eeff258821d

See more details on using hashes here.

File details

Details for the file durusai_cli-3.4.0-py3-none-any.whl.

File metadata

  • Download URL: durusai_cli-3.4.0-py3-none-any.whl
  • Upload date:
  • Size: 35.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for durusai_cli-3.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b7e5506089b2bbf2128cbae1a3a36aee7b07449c8f6acaa2035db3c67fb9b855
MD5 3f213d0d82f754df72acafab52ad7c42
BLAKE2b-256 d2fd4276a473aa9ada610960e3dc37596ddfeb7867c88c6c90313853ee1add2e

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