Metadata-Version: 2.4
Name: salt-docs
Version: 0.1.0
Summary: Intelligent codebase analysis and documentation generation tool
Author: Salt Docs Team
License-Expression: MIT
Project-URL: Homepage, https://github.com/convolution-labs/salt-docs-cli
Project-URL: Repository, https://github.com/convolution-labs/salt-docs-cli
Project-URL: Issues, https://github.com/convolution-labs/salt-docs-cli/issues
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Documentation
Classifier: Topic :: Text Processing :: Markup
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pocketflow>=0.0.1
Requires-Dist: pyyaml>=6.0
Requires-Dist: requests>=2.28.0
Requires-Dist: gitpython>=3.1.0
Requires-Dist: google-genai>=1.9.0
Requires-Dist: pathspec>=0.11.0
Requires-Dist: keyring>=24.0.0
Dynamic: license-file
Dynamic: requires-python

# Salt Docs CLI

AI-powered tool that analyzes codebases and generates beginner-friendly documentation.

## How it works

```mermaid
flowchart LR
    A[Codebase] --> B[Crawl Files]
    B --> C[Analyze Structure]
    C --> D[Identify Abstractions]
    D --> E[Generate Tutorials]
    E --> F[Markdown Docs]
```

## Installation

### Option 1: Install from PyPI (when published)
```bash
pip install salt-docs
```

### Option 2: Install from source
```bash
git clone https://github.com/your-org/salt-docs-cli.git
cd salt-docs-cli
pip install -e .
```

## Quick Start

### 1. Initial Setup
Run the setup wizard to configure your API keys and preferences:

```bash
salt-docs init
```

This will:
- Prompt for your Gemini API key
- Optionally ask for GitHub token (for private repos)
- Set default output location (`~/Documents/Salt Docs`)
- Configure other preferences

### 2. Generate Documentation

#### Analyze GitHub repository
```bash
salt-docs --repo https://github.com/username/repo
```

#### Analyze local directory
```bash
salt-docs --dir /path/to/your/codebase
```

#### With custom options
```bash
salt-docs --repo https://github.com/username/repo --output /custom/path --language spanish --max-abstractions 15
```

## Configuration

Salt Docs stores configuration in `~/Documents/Salt Docs/.salt/config.json` and uses your system's keyring for secure API key storage.

### Configuration Options
- `output_dir`: Default output directory
- `language`: Default language for generated docs
- `max_abstractions`: Default number of abstractions to identify
- `max_file_size`: Maximum file size in bytes
- `use_cache`: Enable/disable LLM response caching
- `include_patterns`: Default file patterns to include
- `exclude_patterns`: Default file patterns to exclude

### Managing Configuration

#### View Current Configuration
```bash
salt-docs config show
```

#### Update API Keys
```bash
# Update Gemini API key (interactive)
salt-docs config update-gemini-key

# Update Gemini API key directly
salt-docs config update-gemini-key "your-api-key-here"

# Update GitHub token (interactive)
salt-docs config update-github-token

# Update GitHub token directly
salt-docs config update-github-token "your-token-here"
```

#### Update Other Settings
```bash
# Change default language
salt-docs config set language spanish

# Change max abstractions
salt-docs config set max_abstractions 15

# Disable caching
salt-docs config set use_cache false

# Update output directory
salt-docs config set output_dir /custom/path
```

## CLI Options

### Required
- `--repo` or `--dir` - GitHub repo URL or local directory path

### Optional
- `-n, --name` - Project name (derived from repo/directory if omitted)
- `-t, --token` - GitHub personal access token
- `-o, --output` - Output directory (overrides config default)
- `-i, --include` - File patterns to include (e.g., "*.py", "*.js")
- `-e, --exclude` - File patterns to exclude (e.g., "tests/*", "docs/*")
- `-s, --max-size` - Maximum file size in bytes (default: 100KB)
- `--language` - Language for generated docs (default: "english")
- `--no-cache` - Disable LLM response caching
- `--max-abstractions` - Maximum number of abstractions to identify (default: 10)

## Migration from Old Version

If you were using the old `python main.py` approach:

1. Install the new CLI: `pip install -e .`
2. Run setup: `salt-docs init`
3. Use the new commands: `salt-docs --repo <url>`

The old approach is no longer supported - please use the new CLI commands.

## Development

### Setup for Development
```bash
git clone https://github.com/your-org/salt-docs-cli.git
cd salt-docs-cli
pip install -e .
salt-docs init
```
