Skip to main content

🐦 Lyrebird CLI: AI-Powered Coding Assistant in Your Terminal

Project description

🐦 Lyrebird CLI

An AI-powered coding assistant that brings advanced code generation, debugging, refactoring, and explanation capabilities directly to your terminal. Like Google's Gemini CLI and Anthropic's Claude Code, but open-source and flexible.

Python 3.8+ License: Apache 2.0

✨ Features

  • 🌟 Code Generation: Generate code from natural language prompts with context awareness
  • 🐛 Bug Fixing: Automatically detect and fix syntax errors, logical bugs, and code issues
  • ♻️ Code Refactoring: Improve code quality, readability, performance, and maintainability
  • 📚 Code Explanation: Get detailed explanations of code functionality, algorithms, and patterns
  • 🏗️ Codebase Analysis: Summarize project architecture, structure, and design patterns
  • 🔌 Multiple Providers: Support for OpenRouter (GPT-4, Claude, etc.) and DeepSeek APIs
  • 🎨 Rich Output: Beautiful syntax highlighting, progress indicators, and formatted display
  • 📁 Flexible Input: Read from files, stdin, or direct prompts seamlessly
  • ⚙️ JSON Output: Machine-readable output format for automation and scripting
  • 🎛️ Explicit Provider Selection: Choose your preferred AI provider for optimal results

🚀 Quick Start

Installation

pip install lyrebird-cli

Or install from source:

git clone https://github.com/muneebabbasi10/lyrebird-cli.git
cd lyrebird-cli
pip install -e .

Setup API Keys (Windows PowerShell)

$env:OPENROUTER_API_KEY = "sk-or-v1-..."
$env:DEEPSEEK_API_KEY = "sk-..."

Get your API keys:

Your First Commands

lyrebird generate "create a binary search algorithm" --provider openrouter
lyrebird fix broken_script.py --provider deepseek
lyrebird summarize ./my_project --provider openrouter

📖 Full Usage Guide

All commands require --provider openrouter or --provider deepseek.

Code Generation

lyrebird generate "Create a FastAPI server with user authentication" --provider openrouter
lyrebird generate "Implement quicksort" --lang java --provider deepseek
lyrebird generate "Add logging" --file utils.py --provider openrouter
lyrebird generate "Build a neural network" --provider openrouter --model openai/gpt-4o

Bug Fixing

lyrebird fix buggy_script.py --provider deepseek
cat broken_code.py | lyrebird fix --provider openrouter
lyrebird fix problematic_code.js --provider deepseek --verbose
lyrebird fix --format json --provider openrouter < code_with_errors.py

Code Refactoring

lyrebird refactor legacy_code.py --provider openrouter
cat messy_code.py | lyrebird refactor --provider deepseek
lyrebird refactor slow_algorithm.py --provider openrouter --verbose
lyrebird refactor --format json old_code.py --provider deepseek

Code Explanation

lyrebird explain sorting_algorithm.py --provider deepseek
cat complex_function.py | lyrebird explain --provider openrouter
lyrebird explain --format json mysterious_code.py --provider deepseek
lyrebird explain advanced_topic.py --provider openrouter --verbose

Codebase Analysis

lyrebird summarize ./my_project --provider openrouter
lyrebird summarize ./backend --provider openrouter --model openai/gpt-4o
lyrebird summarize ./codebase --format json --provider deepseek
lyrebird summarize ./src --provider openrouter --verbose

🔧 Configuration

.env File

OPENROUTER_API_KEY=sk-or-v1-your-key-here
DEEPSEEK_API_KEY=sk-your-deepseek-key
LYREBIRD_DEFAULT_PROVIDER=openrouter
LYREBIRD_DEFAULT_MODEL=openai/gpt-4o

Provider-Specific Models

  • OpenRouter: openai/gpt-4o, anthropic/claude-3.5-sonnet, google/gemini-pro-1.5, openai/gpt-3.5-turbo, meta-llama/llama-3-70b
  • DeepSeek: deepseek-chat, deepseek-coder

📊 Workflows

Daily Dev

lyrebird explain src/main.py --provider deepseek
lyrebird generate "Add user profile" --file models/user.py --provider openrouter
lyrebird fix src/profiles.py --provider deepseek
lyrebird refactor src/profiles.py --provider openrouter
lyrebird summarize . --provider openrouter > daily_report.md

Code Review

lyrebird explain feature_branch.py --provider deepseek --format json
lyrebird fix --format json src/ --provider openrouter | jq '.issues'
lyrebird refactor pull_request.py --provider deepseek --verbose

Learn New Codebase

lyrebird summarize ./new_project --provider openrouter
lyrebird explain src/core/engine.py --provider deepseek
lyrebird explain design_patterns/ --provider openrouter --verbose

Debugging

lyrebird explain failing_test.py --provider deepseek
lyrebird generate "Add debugging logs" --file problematic_module.py --provider openrouter
lyrebird fix problematic_module.py --provider deepseek
lyrebird explain fixed_module.py --provider openrouter

🎨 Output Formats

Text (Default)

Formatted, colorized CLI output

JSON

lyrebird generate "hello world" --format json --provider deepseek

Example:

{
  "task": "generate",
  "content": "generated code here",
  "timestamp": "/cwd",
  "version": "0.1.0"
}

🛠️ Development

Setup

git clone https://github.com/muneebabbasi10/lyrebird-cli.git
cd lyrebird-cli
pip install -e ".[dev]"
pre-commit install

Testing

pytest
pytest --cov=src --cov-report=html
pytest tests/test_cli.py -v

Code Quality

black src tests
flake8 src tests
mypy src
make quality

📊 Performance Tips

  • GPT-4o: best quality, slower
  • Claude 3.5: great for reasoning
  • GPT-3.5: fast, cheaper
  • DeepSeek Coder: high code quality

⚠️ Troubleshooting

API Key Error

$env:OPENROUTER_API_KEY = "your-key"

Missing Provider

# Wrong
lyrebird generate "hello"

# Right
lyrebird generate "hello" --provider openrouter

File Issues

ls your_file.py
lyrebird fix /full/path/to/file.py --provider deepseek

Rate Limits

lyrebird generate "code" --provider openrouter --verbose
lyrebird generate "code" --provider deepseek

Debug Logs

lyrebird generate "test" --provider openrouter --verbose

📦 Install

pip install lyrebird-cli

📄 License

Apache 2.0 - See LICENSE

🤝 Contributing

  1. Fork
  2. Create branch
  3. Add code + tests
  4. Ensure tests pass
  5. Format with black
  6. Push & PR

Guidelines

  • PEP 8
  • Small focused PRs
  • Tests & Docs

🙏 Acknowledgments

  • Inspired by Gemini CLI, Claude CLI
  • Built with Typer, Rich
  • Powered by OpenRouter + DeepSeek

📒 Related Projects

🛡️ Support

Made with ❤️ by Muneeb. Happy coding! 🚀

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

lyrebird_cli-0.1.0.tar.gz (14.6 kB view details)

Uploaded Source

Built Distribution

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

lyrebird_cli-0.1.0-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file lyrebird_cli-0.1.0.tar.gz.

File metadata

  • Download URL: lyrebird_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 14.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.6

File hashes

Hashes for lyrebird_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c2d8bd39a4675f085aca9ada4defeb45b6bd2aa615f659427d6cf7af5aab5c5b
MD5 9e8a0f2e3b0dd1bb9796009a843491c6
BLAKE2b-256 849473f98d8c160de2b31c98fd326958ba63d531c91476b8df363a37827188f0

See more details on using hashes here.

File details

Details for the file lyrebird_cli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: lyrebird_cli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.6

File hashes

Hashes for lyrebird_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cee78aa6a4933cc55926fbac69530ea22da53a04660851ae8efb8901c2e3b4dd
MD5 ab20aaebba58a580a5d367200356f3d2
BLAKE2b-256 9202a63609d3507d7010cc3d96c7a6cc5cb375c69af85a7587ac960734d8c3ce

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