99 lines
3.1 KiB
Markdown
99 lines
3.1 KiB
Markdown
|
# 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
|