fix: resolve CI linting issues - remove unused imports and f-strings
This commit is contained in:
332
app/README.md
Normal file
332
app/README.md
Normal file
@@ -0,0 +1,332 @@
|
|||||||
|
# CLI Command Memory
|
||||||
|
|
||||||
|
A CLI tool that records developer terminal workflows with project context, enables smart autocomplete based on history, detects automation patterns, and generates reusable scripts from recurring command sequences.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- **Command Recording**: Record terminal workflows with automatic project context detection
|
||||||
|
- **Smart Autocomplete**: Get intelligent command suggestions based on history and patterns
|
||||||
|
- **Pattern Detection**: Automatically detect recurring command sequences
|
||||||
|
- **Script Generation**: Convert workflows into reusable bash scripts
|
||||||
|
- **Workflow Playback**: Replay recorded workflows with configurable speed
|
||||||
|
- **Searchable History**: Search commands by project, technology, or time range
|
||||||
|
- **Shell Integration**: Auto-capture commands in your shell sessions
|
||||||
|
- **Export/Import**: Share workflows with JSON/YAML export
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Clone the repository
|
||||||
|
git clone <repository-url>
|
||||||
|
cd cli-command-memory
|
||||||
|
|
||||||
|
# Install dependencies
|
||||||
|
pip install -r requirements.txt
|
||||||
|
|
||||||
|
# Install in development mode
|
||||||
|
pip install -e .
|
||||||
|
```
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Initialize CLI Command Memory
|
||||||
|
cli-memory init
|
||||||
|
|
||||||
|
# Start recording a command session
|
||||||
|
cli-memory record start
|
||||||
|
|
||||||
|
# Search for previous commands
|
||||||
|
cli-memory search commands "git status"
|
||||||
|
|
||||||
|
# Get suggestions for next command
|
||||||
|
cli-memory suggest next "git "
|
||||||
|
|
||||||
|
# Generate a script from a workflow
|
||||||
|
cli-memory workflow generate 1 --name my-script
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
### Recording Commands
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Start interactive recording session
|
||||||
|
cli-memory record start
|
||||||
|
|
||||||
|
# Record a single command
|
||||||
|
cli-memory record single "git status"
|
||||||
|
|
||||||
|
# View recent recorded commands
|
||||||
|
cli-memory record recent --limit 20
|
||||||
|
```
|
||||||
|
|
||||||
|
### Searching History
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Search commands by query
|
||||||
|
cli-memory search commands "git commit"
|
||||||
|
|
||||||
|
# Search by project
|
||||||
|
cli-memory search commands --project my-project
|
||||||
|
|
||||||
|
# Search by command type
|
||||||
|
cli-memory search commands --type git
|
||||||
|
|
||||||
|
# Fuzzy search
|
||||||
|
cli-memory search commands "stts" --fuzzy
|
||||||
|
|
||||||
|
# Search by technology stack
|
||||||
|
cli-memory search tech python
|
||||||
|
|
||||||
|
# Show recent commands
|
||||||
|
cli-memory search recent --hours 24
|
||||||
|
|
||||||
|
# View command statistics
|
||||||
|
cli-memory search stats
|
||||||
|
```
|
||||||
|
|
||||||
|
### Smart Suggestions
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Get suggestions for next command
|
||||||
|
cli-memory suggest next "git "
|
||||||
|
|
||||||
|
# Get autocomplete candidates
|
||||||
|
cli-memory suggest autocomplete "git ch"
|
||||||
|
|
||||||
|
# Train suggestion engine
|
||||||
|
cli-memory suggest train
|
||||||
|
|
||||||
|
# View detected patterns
|
||||||
|
cli-memory suggest patterns
|
||||||
|
```
|
||||||
|
|
||||||
|
### Workflow Management
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# List workflows
|
||||||
|
cli-memory workflow list
|
||||||
|
|
||||||
|
# Show workflow details
|
||||||
|
cli-memory workflow show 1
|
||||||
|
|
||||||
|
# Playback a workflow
|
||||||
|
cli-memory workflow play 1 --speed 2.0
|
||||||
|
|
||||||
|
# Preview workflow commands
|
||||||
|
cli-memory workflow preview 1
|
||||||
|
|
||||||
|
# Generate script from workflow
|
||||||
|
cli-memory workflow generate 1 --name my-script
|
||||||
|
```
|
||||||
|
|
||||||
|
### Export and Import
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Export commands to JSON
|
||||||
|
cli-memory export commands -o commands.json
|
||||||
|
|
||||||
|
# Export workflows
|
||||||
|
cli-memory export workflows -o workflows.yaml
|
||||||
|
|
||||||
|
# Export all data
|
||||||
|
cli-memory export all -o backup.json
|
||||||
|
|
||||||
|
# List generated scripts
|
||||||
|
cli-memory export scripts
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
Configuration is managed through `config.yaml` and environment variables.
|
||||||
|
|
||||||
|
### Environment Variables
|
||||||
|
|
||||||
|
| Variable | Default | Description |
|
||||||
|
|----------|---------|-------------|
|
||||||
|
| `CLI_MEMORY_HOME` | `~/.cli_memory` | Base directory for storing data |
|
||||||
|
| `LOG_LEVEL` | `info` | Logging level: debug, info, warning, error |
|
||||||
|
| `MAX_WORKFLOW_COMMANDS` | `100` | Max commands to store per workflow |
|
||||||
|
| `MAX_SUGGESTIONS` | `10` | Number of suggestions to return |
|
||||||
|
| `ENABLE_AUTOCOMPLETE` | `true` | Enable autocomplete integration |
|
||||||
|
|
||||||
|
### Configuration File
|
||||||
|
|
||||||
|
Create a `config.yaml` file in your project directory or `~/.cli_memory/`:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
database:
|
||||||
|
path: "~/.cli_memory/database.db"
|
||||||
|
wal_mode: true
|
||||||
|
|
||||||
|
recording:
|
||||||
|
max_commands_per_workflow: 100
|
||||||
|
min_commands_for_workflow: 3
|
||||||
|
|
||||||
|
suggestions:
|
||||||
|
max_suggestions: 10
|
||||||
|
min_confidence: 0.3
|
||||||
|
```
|
||||||
|
|
||||||
|
## Shell Integration
|
||||||
|
|
||||||
|
For automatic command recording, set up shell integration:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Set up bash integration
|
||||||
|
cli-memory shell setup
|
||||||
|
|
||||||
|
# Restart your shell or source your profile
|
||||||
|
source ~/.bashrc
|
||||||
|
```
|
||||||
|
|
||||||
|
## Commands Reference
|
||||||
|
|
||||||
|
### Main Commands
|
||||||
|
|
||||||
|
| Command | Description |
|
||||||
|
|---------|-------------|
|
||||||
|
| `cli-memory init` | Initialize CLI Command Memory |
|
||||||
|
| `cli-memory status` | Show current status and statistics |
|
||||||
|
| `cli-memory detect` | Detect project context |
|
||||||
|
|
||||||
|
### Record Group
|
||||||
|
|
||||||
|
| Command | Description |
|
||||||
|
|---------|-------------|
|
||||||
|
| `record start` | Start interactive recording session |
|
||||||
|
| `record single` | Record a single command |
|
||||||
|
| `record recent` | Show recent recorded commands |
|
||||||
|
|
||||||
|
### Search Group
|
||||||
|
|
||||||
|
| Command | Description |
|
||||||
|
|---------|-------------|
|
||||||
|
| `search commands` | Search recorded commands |
|
||||||
|
| `search workflows` | Search workflows |
|
||||||
|
| `search tech` | Search by technology stack |
|
||||||
|
| `search recent` | Show recent commands |
|
||||||
|
| `search stats` | Show command statistics |
|
||||||
|
|
||||||
|
### Suggest Group
|
||||||
|
|
||||||
|
| Command | Description |
|
||||||
|
|---------|-------------|
|
||||||
|
| `suggest next` | Get command suggestions |
|
||||||
|
| `suggest autocomplete` | Get autocomplete candidates |
|
||||||
|
| `suggest train` | Train suggestion engine |
|
||||||
|
| `suggest patterns` | Show detected patterns |
|
||||||
|
|
||||||
|
### Workflow Group
|
||||||
|
|
||||||
|
| Command | Description |
|
||||||
|
|---------|-------------|
|
||||||
|
| `workflow list` | List all workflows |
|
||||||
|
| `workflow show` | Show workflow details |
|
||||||
|
| `workflow play` | Playback a workflow |
|
||||||
|
| `workflow preview` | Preview workflow commands |
|
||||||
|
| `workflow generate` | Generate script from workflow |
|
||||||
|
|
||||||
|
### Export Group
|
||||||
|
|
||||||
|
| Command | Description |
|
||||||
|
|---------|-------------|
|
||||||
|
| `export commands` | Export commands to file |
|
||||||
|
| `export workflows` | Export workflows to file |
|
||||||
|
| `export all` | Export all data |
|
||||||
|
| `export scripts` | List generated scripts |
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
### Recording a Git Workflow
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Start recording
|
||||||
|
cli-memory record start --project my-repo --tag git
|
||||||
|
|
||||||
|
# Execute commands
|
||||||
|
git checkout -b feature/new-feature
|
||||||
|
git add .
|
||||||
|
git commit -m "Add new feature"
|
||||||
|
git push origin feature/new-feature
|
||||||
|
|
||||||
|
# Exit recording (type 'exit')
|
||||||
|
exit
|
||||||
|
|
||||||
|
# Save as workflow when prompted
|
||||||
|
```
|
||||||
|
|
||||||
|
### Creating a Deployment Script
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Search for deployment commands
|
||||||
|
cli-memory search commands "docker build"
|
||||||
|
|
||||||
|
# Generate script from workflow
|
||||||
|
cli-memory workflow generate 5 --name deploy-prod --output deploy.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Finding Common Patterns
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Train suggestion engine
|
||||||
|
cli-memory suggest train
|
||||||
|
|
||||||
|
# View detected patterns
|
||||||
|
cli-memory suggest patterns
|
||||||
|
|
||||||
|
# Generate automation script
|
||||||
|
cli-memory workflow generate 3 --name automation-script
|
||||||
|
```
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
```
|
||||||
|
cli_command_memory/
|
||||||
|
├── cli_memory/
|
||||||
|
│ ├── __init__.py # Package initialization
|
||||||
|
│ ├── cli.py # Main Click CLI interface
|
||||||
|
│ ├── config.py # Configuration management
|
||||||
|
│ ├── database.py # SQLite database layer
|
||||||
|
│ ├── models.py # Data models
|
||||||
|
│ ├── recorder.py # Command recording
|
||||||
|
│ ├── project.py # Project detection
|
||||||
|
│ ├── context.py # Context extraction
|
||||||
|
│ ├── search.py # Search engine
|
||||||
|
│ ├── history.py # History management
|
||||||
|
│ ├── suggestions.py # Suggestion engine
|
||||||
|
│ ├── patterns.py # Pattern detection
|
||||||
|
│ ├── generator.py # Script generation
|
||||||
|
│ ├── playback.py # Workflow playback
|
||||||
|
│ └── commands/ # CLI commands
|
||||||
|
├── shell/ # Shell integration
|
||||||
|
│ ├── bash_completion.sh
|
||||||
|
│ └── setup.sh
|
||||||
|
└── tests/ # Unit tests
|
||||||
|
```
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Run all tests
|
||||||
|
pytest tests/ -v
|
||||||
|
|
||||||
|
# Run with coverage
|
||||||
|
pytest tests/ --cov=cli_memory --cov-report=term-missing
|
||||||
|
|
||||||
|
# Run specific test file
|
||||||
|
pytest tests/test_models.py -v
|
||||||
|
```
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
1. Fork the repository
|
||||||
|
2. Create a feature branch
|
||||||
|
3. Make your changes
|
||||||
|
4. Run tests: `pytest tests/`
|
||||||
|
5. Submit a pull request
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT License - see LICENSE file for details.
|
||||||
Reference in New Issue
Block a user