diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..21f4a1b --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,99 @@ +# 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 \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 70d90b7..570ba82 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "autoterminal" -version = "0.1.0" +version = "0.1.1" description = "智能终端工具,基于LLM将自然语言转换为终端命令(create by claude 4 sonnet)" readme = "README.md" requires-python = ">=3.10" diff --git a/setup.py b/setup.py index bc507b0..7e8561b 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages setup( name="autoterminal", - version="0.1.0", + version="0.1.1", description="智能终端工具,基于LLM将自然语言转换为终端命令(create by claude 4 sonnet)", long_description=open("README.md").read(), long_description_content_type="text/markdown", diff --git a/uv.lock b/uv.lock index ffa531c..4868e17 100644 --- a/uv.lock +++ b/uv.lock @@ -28,7 +28,7 @@ wheels = [ [[package]] name = "autoterminal" -version = "0.1.0" +version = "0.1.1" source = { editable = "." } dependencies = [ { name = "openai" },