🎯 AI Command Assistant - Convert natural language to shell commands using AI, Now Ai is into Your terminal
Project description
🎯 Amvka - AI Command Assistant
🚀 No more memorizing commands! Just tell me what you want to do.
Amvka is an intelligent AI-powered command-line assistant that converts natural language into shell commands. Simply describe what you want to do in plain English, and Amvka will suggest the exact command for you.
🚀 Quick Start
# Install amvka
pip install amvka
# Configure your API key
amvka config
# Start using natural language!
amvka "show me all Python files"
amvka "check system memory usage"
amvka "create a backup of this directory"
✨ Features
- 🤖 AI-Powered: Uses Google Gemini or OpenAI to understand natural language
- 🔒 Safety First: Built-in safety checks and confirmation prompts
- ⚡ Easy Setup: Simple configuration process
- 🎯 Smart Suggestions: Contextual and accurate command suggestions
- 🛡️ Secure Execution: Sandboxed command execution with timeout protection
- 🌍 Cross-Platform: Works on Windows, macOS, and Linux
🚀 Quick Start
Installation
Option 1: Install via apt-get (Recommended)
# Add the Amvka repository (setup instructions coming soon)
sudo apt-get update
sudo apt-get install amvka
Option 2: Install from source
# Clone the repository
git clone https://github.com/amvka/amvka.git
cd amvka
# Install dependencies
pip3 install -r requirements.txt
# Install the package
pip3 install .
Initial Setup
After installation, you need to configure your API key:
amvka config
This will guide you through:
- Choosing your AI provider (Google Gemini or OpenAI)
- Setting up your API key
- Configuring basic preferences
Usage Examples
# File operations
amvka show me the files in this folder
# Suggests: ls -la
amvka create a new file called hello.txt
# Suggests: touch hello.txt
amvka find all Python files in the current directory
# Suggests: find . -name "*.py"
# System information
amvka what is my current directory
# Suggests: pwd
amvka show me system information
# Suggests: uname -a
# Git operations
amvka show me the git status
# Suggests: git status
amvka commit all changes with message "fix bug"
# Suggests: git commit -am "fix bug"
# Package management
amvka install python package requests
# Suggests: pip install requests
# Text processing
amvka count lines in all text files
# Suggests: wc -l *.txt
Command Line Options
amvka [OPTIONS] QUERY
Options:
-y, --yes Auto-confirm command execution (skip confirmation)
--dry-run Show suggested command without executing
-v, --version Show version information
--help Show help message
Commands:
config Configure API settings
--reset Reset configuration
--show Show current configuration
🔧 Configuration
API Providers
Amvka supports two AI providers:
Google Gemini (Recommended)
- Visit Google AI Studio
- Sign in with your Google account
- Create a new API key
- Run
amvka configand paste your key
OpenAI
- Visit OpenAI API Keys
- Sign in to your OpenAI account
- Create a new API key
- Run
amvka configand paste your key
Configuration File
Your configuration is stored in ~/.amvka/config.json:
{
"provider": "gemini",
"api_key": "your-api-key-here",
"model": "gemini-pro",
"safety_confirmation": true
}
Managing Configuration
# Show current configuration
amvka config --show
# Reset configuration
amvka config --reset
# Reconfigure
amvka config
🛡️ Safety Features
Amvka prioritizes safety with multiple protection layers:
1. Command Validation
- Whitelist of safe commands
- Pattern-based dangerous command detection
- User confirmation for unknown commands
2. Execution Safety
- 30-second timeout for all commands
- Sandboxed execution environment
- No direct root access
3. Dangerous Command Detection
Commands containing these patterns are blocked:
rm -rf /(recursive deletion of root)sudo rm(elevated deletion)dd if=(disk writing operations)mkfs.(filesystem formatting)shutdown/reboot(system control)- And many more...
4. User Confirmation
- Always asks for confirmation before execution (unless
-yflag is used) - Shows the exact command that will be executed
- Option to cancel at any time
🔍 How It Works
- Input: You provide a natural language query
- Processing: Amvka sends your query to the configured AI provider
- Generation: The AI generates an appropriate shell command
- Validation: Amvka validates the command for safety
- Confirmation: You review and confirm the command
- Execution: The command is executed securely
📝 Development
Building from Source
# Clone the repository
git clone https://github.com/amvka/amvka.git
cd amvka
# Create virtual environment
python3 -m venv venv
source venv/bin/activate
# Install in development mode
pip install -e .
# Install development dependencies
pip install -e .[dev]
Building Debian Package
# Install build dependencies
sudo apt-get install build-essential debhelper dh-python python3-setuptools
# Build the package
dpkg-buildpackage -us -uc
# Install the built package
sudo dpkg -i ../amvka_1.0.0-1_all.deb
Running Tests
# Run tests
python -m pytest tests/
# Run with coverage
python -m pytest --cov=amvka tests/
🤝 Contributing
We welcome contributions! Please see our Contributing Guidelines for details.
Areas for Contribution
- Additional AI provider support
- Enhanced safety checks
- More comprehensive command validation
- Better error handling
- Documentation improvements
📋 Requirements
- Python 3.7 or higher
- Internet connection (for AI API calls)
- Linux or macOS (Windows support coming soon)
Python Dependencies
requests>=2.31.0google-generativeai>=0.3.0(for Gemini)openai>=1.0.0(for OpenAI)click>=8.0.0colorama>=0.4.0
⚠️ Important Disclaimers
Safety Notice
- Always review commands before execution
- Amvka is designed to be safe, but AI can make mistakes
- Never run commands you don't understand
- Be extra cautious with file operations and system commands
API Usage
- You are responsible for your API usage and costs
- Monitor your API usage on your provider's dashboard
- Keep your API keys secure and never share them
Limitations
- Requires internet connection for AI processing
- Subject to AI provider rate limits
- Command suggestions may not always be optimal
- Some complex operations may require manual command crafting
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
📞 Support
- 🐛 Bug Reports: GitHub Issues
- 💡 Feature Requests: GitHub Discussions
- 📖 Documentation: GitHub Wiki
🎯 Roadmap
- Windows support
- Plugin system for custom commands
- Command history and favorites
- Integration with more AI providers
- GUI version
- Shell completion support
- Command explanation mode
Made with ❤️ by the Amvka Team
Amvka - Making the command line more accessible, one natural language query at a time.
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 amvka-1.0.0.tar.gz.
File metadata
- Download URL: amvka-1.0.0.tar.gz
- Upload date:
- Size: 28.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c509b3e08691d2ce50128c6b75d5c1f7c446e8dfc10f813c68c9b92439e2e291
|
|
| MD5 |
cfc3369185966c7033d0d909dc808811
|
|
| BLAKE2b-256 |
95d77317d835dcbc7f19bf7fba0742084c9d30f054a2262dcfd58eca0797647f
|
Provenance
The following attestation bundles were made for amvka-1.0.0.tar.gz:
Publisher:
publish.yml on lalitt08/amvka-ai-assistant-terminal
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
amvka-1.0.0.tar.gz -
Subject digest:
c509b3e08691d2ce50128c6b75d5c1f7c446e8dfc10f813c68c9b92439e2e291 - Sigstore transparency entry: 561468780
- Sigstore integration time:
-
Permalink:
lalitt08/amvka-ai-assistant-terminal@b73f95d0ef419987733027647ae4867c2678e113 -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/lalitt08
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b73f95d0ef419987733027647ae4867c2678e113 -
Trigger Event:
push
-
Statement type:
File details
Details for the file amvka-1.0.0-py3-none-any.whl.
File metadata
- Download URL: amvka-1.0.0-py3-none-any.whl
- Upload date:
- Size: 25.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 |
68a61bf326b9fb9650cda5a160b9e13a5ea25d8b819591293fa51aa20d41d352
|
|
| MD5 |
650b6532409614f32aa189abe3ab3b8b
|
|
| BLAKE2b-256 |
9777b59d056e519a38656a3cbe2981f651e5b779c4692f1287e8b37163f86232
|
Provenance
The following attestation bundles were made for amvka-1.0.0-py3-none-any.whl:
Publisher:
publish.yml on lalitt08/amvka-ai-assistant-terminal
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
amvka-1.0.0-py3-none-any.whl -
Subject digest:
68a61bf326b9fb9650cda5a160b9e13a5ea25d8b819591293fa51aa20d41d352 - Sigstore transparency entry: 561468799
- Sigstore integration time:
-
Permalink:
lalitt08/amvka-ai-assistant-terminal@b73f95d0ef419987733027647ae4867c2678e113 -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/lalitt08
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b73f95d0ef419987733027647ae4867c2678e113 -
Trigger Event:
push
-
Statement type: