Metadata-Version: 2.4
Name: deepseeker
Version: 2.3.1
Summary: DeepSeek AI-powered CLI agent with HITL guardrails for code assistance and automation
Author-email: Bo Shang <bo@shang.software>
License: MIT
Project-URL: Homepage, https://github.com/ErosolarAI/deepseeker
Project-URL: Repository, https://github.com/ErosolarAI/deepseeker
Project-URL: Issues, https://github.com/ErosolarAI/deepseeker/issues
Keywords: ai,cli,llm,deepseek,openai,anthropic,code-assistant,automation,developer-tools,guardrails,hitl
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: openai>=1.0.0
Requires-Dist: rich>=13.0.0
Provides-Extra: all
Requires-Dist: anthropic>=0.20.0; extra == "all"
Requires-Dist: google-generativeai>=0.3.0; extra == "all"
Requires-Dist: tavily-python>=0.3.0; extra == "all"
Provides-Extra: anthropic
Requires-Dist: anthropic>=0.20.0; extra == "anthropic"
Provides-Extra: google
Requires-Dist: google-generativeai>=0.3.0; extra == "google"
Provides-Extra: search
Requires-Dist: tavily-python>=0.3.0; extra == "search"
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"

# DeepSeeker

AI-powered CLI agent with HITL guardrails for code assistance and automation.

<p align="center">
  <img src="https://raw.githubusercontent.com/ErosolarAI/deepseeker/main/assets/mq9_reaper_nsa_style.png" alt="DeepSeeker - MQ-9 Reaper HITL Model" width="600"/>
</p>

[![PyPI version](https://badge.fury.io/py/deepseeker.svg)](https://badge.fury.io/py/deepseeker)
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## Features

- **Multi-Provider Support**: DeepSeek, OpenAI, Anthropic
- **Tool Use**: Bash, Read, Write, Edit, Glob, Grep
- **HITL Guardrails**: MQ-9 Reaper model for operation safety
- **Streaming Responses**: Real-time output with tool execution display
- **Interactive Shell**: Slash commands, history, auto-completion

## Installation

```bash
pip install deepseeker
```

## Quick Start

```bash
# Interactive mode
deepseekpy

# Quick query
deepseekpy -q "explain this code"

# Set API key
deepseekpy --key YOUR_DEEPSEEK_API_KEY
```

## API Key Setup

On first launch, you'll be prompted to enter your API key:

```
No DEEPSEEK API key found
Get your key from: https://platform.deepseek.com/api-keys
Enter DEEPSEEK_API_KEY: sk-...
```

Keys are stored securely in `~/.agi/secrets.json` (mode 0600).

## HITL Guardrails (MQ-9 Reaper Model)

Operations are classified by risk level:

| Level | Approval | Examples |
|-------|----------|----------|
| ROUTINE | Auto-approved | `ls`, `git status`, file reads |
| ELEVATED | Logged | File writes, git operations |
| CRITICAL | 1 confirmation | `sudo` operations, system changes |
| LETHAL | 2 confirmations + 5s delay | `rm -rf /`, disk writes |

## Commands

| Command | Description |
|---------|-------------|
| `/help` | Show help |
| `/model [provider]` | Switch AI provider |
| `/tools` | List available tools |
| `/guardrails` | Show guardrails status |
| `/secrets` | Manage API keys |
| `/exit` | Exit |

## Tools

- **Bash**: Execute shell commands
- **Read**: Read files with line numbers
- **Write**: Create/overwrite files
- **Edit**: Precise text replacement
- **Glob**: Find files by pattern
- **Grep**: Search file contents

## API Error Handling

DeepSeeker detects and handles API errors:

- **Invalid Key**: Prompts for new key
- **Rate Limited**: Shows wait message
- **Frozen Account**: Displays support info
- **Quota Exceeded**: Shows billing link

## License

MIT License - see [LICENSE](LICENSE) for details.

## Author

Bo Shang <bo@shang.software>
