3.1 KiB
3.1 KiB
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
-
Main Entry Point (
autoterminal/main.py
):- Parses command-line arguments
- Loads configuration
- Initializes LLM client
- Generates and executes commands
- Manages command history
-
Configuration Management (
autoterminal/config/
):loader.py
: Loads configuration from filemanager.py
: Manages configuration saving, validation, and initialization
-
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
-
Command History (
autoterminal/history/history.py
):- Manages command history storage and retrieval
- Provides context for LLM generation
-
Utilities (
autoterminal/utils/helpers.py
):- Provides helper functions like command cleaning
Common Development Commands
Installation
Using uv (development mode):
uv sync
Using pip (user installation):
pip install --user .
Running the Application
Using uv run:
uv run python autoterminal/main.py "list all files in current directory"
After installation, use the at
command:
at "list all files in current directory"
Using history context:
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