AutoTerminal/CLAUDE.md

99 lines
3.1 KiB
Markdown
Raw Normal View History

# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
AutoTerminal is a smart terminal tool based on large language models (LLM) that converts natural language into terminal commands to improve work efficiency.
## Code Architecture
```
autoterminal/
├── __init__.py # Package initialization
├── main.py # Main program entry point
├── config/ # Configuration management module
│ ├── __init__.py # Package initialization
│ ├── loader.py # Configuration loader
│ └── manager.py # Configuration manager
├── llm/ # LLM related modules
│ ├── __init__.py # Package initialization
│ └── client.py # LLM client
├── history/ # Command history management module
│ ├── __init__.py # Package initialization
│ └── history.py # History manager
├── utils/ # Utility functions
│ ├── __init__.py # Package initialization
│ └── helpers.py # Helper functions
```
### Key Components
1. **Main Entry Point** (`autoterminal/main.py`):
- Parses command-line arguments
- Loads configuration
- Initializes LLM client
- Generates and executes commands
- Manages command history
2. **Configuration Management** (`autoterminal/config/`):
- `loader.py`: Loads configuration from file
- `manager.py`: Manages configuration saving, validation, and initialization
3. **LLM Integration** (`autoterminal/llm/client.py`):
- Wraps OpenAI API client
- Generates terminal commands from natural language input
- Incorporates context from command history and current directory
4. **Command History** (`autoterminal/history/history.py`):
- Manages command history storage and retrieval
- Provides context for LLM generation
5. **Utilities** (`autoterminal/utils/helpers.py`):
- Provides helper functions like command cleaning
## Common Development Commands
### Installation
Using uv (development mode):
```bash
uv sync
```
Using pip (user installation):
```bash
pip install --user .
```
### Running the Application
Using uv run:
```bash
uv run python autoterminal/main.py "list all files in current directory"
```
After installation, use the `at` command:
```bash
at "list all files in current directory"
```
Using history context:
```bash
at --history-count 5 "based on previous commands, delete all .txt files"
```
### Development
The project uses setuptools for packaging and distribution. Entry point is defined in both `pyproject.toml` and `setup.py`.
## Key Features
- LLM-based intelligent command generation
- Secure command execution mechanism (requires user confirmation)
- Flexible configuration management
- Chinese language support
- Support for multiple LLM models (OpenAI GPT series and compatible APIs)
- Command history tracking and context awareness
- Current directory content context awareness
- Configurable history size