Metadata-Version: 2.4
Name: openpraxis
Version: 0.1.0
Summary: AI Bandwidth Amplifier - turn notes into structured practice and actionable learning insights
Project-URL: Homepage, https://github.com/Sibo-Zhao/OpenPraxis
Project-URL: Repository, https://github.com/Sibo-Zhao/OpenPraxis
Project-URL: Issues, https://github.com/Sibo-Zhao/OpenPraxis/issues
Author: OpenPraxis Contributors
License: MIT
License-File: LICENSE
Keywords: ai,knowledge-management,learning,llm,practice,spaced-repetition
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Education
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: langgraph-checkpoint-sqlite>=3.0
Requires-Dist: langgraph>=0.2
Requires-Dist: openai>=1.30
Requires-Dist: pydantic>=2.6
Requires-Dist: rich>=13.0
Requires-Dist: tomli-w>=1.0
Requires-Dist: typer>=0.9.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: respx>=0.21; extra == 'dev'
Requires-Dist: ruff>=0.3; extra == 'dev'
Description-Content-Type: text/markdown

# OpenPraxis

Built for applied mastery of your local knowledge bases, notes, and other multi-source materials: turn raw inputs into structured practice so you can use what you know, not just store it.

Now supports an OpenClaw-oriented knowledge assistant workflow via skills: ingest personal local knowledge into a local KB and generate retrieval practice during import, so users can actively master stored knowledge instead of only archiving it.

## Requirements

- Python 3.11+
- LLM API Key (OpenAI / Doubao / Kimi / DeepSeek)

## Installation

Install from PyPI:

```bash
pip install openpraxis
```

Or install from source (for development):

```bash
git clone https://github.com/Sibo-Zhao/OpenPraxis.git
cd OpenPraxis
pip install -e ".[dev]"
```

## Configuration

Recommended first-time setup:

```bash
praxis llm setup
praxis llm show
```

This saves your default provider/model/api_key into `~/.openpraxis/config.toml`.
You can also edit `config.example.toml` manually and copy it to `~/.openpraxis/config.toml`.

- `openai` (default): native structured output parse
- `doubao`: native structured output parse
- `kimi` / `deepseek`: JSON mode + JSON string -> Pydantic validation

API key env vars (higher priority than `llm.api_key`):

- `OPENAI_API_KEY` for `openai`
- `ARK_API_KEY` for `doubao`
- `MOONSHOT_API_KEY` for `kimi`
- `DEEPSEEK_API_KEY` for `deepseek`

## Usage

```bash
praxis add <file> [--type report|interview|reflection|idea]
praxis practice <input_id>
praxis answer <scene_id> [--editor] [--file <path>]
praxis insight [<input_id>] [--type <insight_type>] [--min-intensity <n>]
praxis show <id>
praxis export [--format md|json] [--output <path>]
praxis list [--type report|interview|reflection|idea] [--limit N]
```

## OpenClaw + Skills

Use the bundled skill at `openclaw-knowledge-coach/` to run a CLI-first workflow for local-knowledge mastery:

- Clone and install OpenPraxis
- Configure provider/model/API key
- Import local files with `praxis add`
- Generate/re-run practice with `praxis practice`
- Submit answers with `praxis answer`
- Review/export insights with `praxis insight`, `praxis show`, and `praxis export`

The skill documents command chaining, output contracts, and exercise-generation patterns for retrieval practice on personal local knowledge bases.

`praxis add` accepts both text/markdown files and common image formats (`.png`, `.jpg`, `.webp`, ...). For images, OpenPraxis uses a vision-capable model to extract readable text first (providers: `openai` or `doubao`).

Global runtime LLM overrides (for a single command):

```bash
praxis --provider doubao --model doubao-seed-1-6-251015 add note.md
praxis --provider kimi --model kimi-k2-turbo-preview practice <input_id>
praxis --provider deepseek --model deepseek-chat answer <scene_id> --file answer.md
```

## Development

```bash
pytest
ruff check src tests
```

## Vision

Increase your "AI bandwidth" by converting fragmented inputs into reusable practice loops that build real transfer: faster recall, clearer decisions, better on-the-job application.

## License

See the project repository.
