Install
openclaw skills install openclaw-knowledge-coachBuild and operate an OpenClaw-based local knowledge assistant that imports personal/local documents into a knowledge base and creates practice exercises duri...
openclaw skills install openclaw-knowledge-coachCreate a local knowledge workflow in OpenClaw where importing knowledge also produces practice material for retention. OpenPraxis is on PyPI: use pip install openpraxis to get the praxis CLI.
Use OpenPraxis CLI as the default execution path.
Install from PyPI (recommended):
pip install openpraxis
praxis --help
Or install from source for development:
git clone https://github.com/Sibo-Zhao/OpenPraxis.git
cd OpenPraxis
pip install -e ".[dev]"
praxis --help
Configure provider/model/API key before ingestion/practice:
praxis llm setup
praxis llm show
Use environment variables when needed (higher priority than config file):
export OPENAI_API_KEY="your_key_here"
# or ARK_API_KEY / MOONSHOT_API_KEY / DEEPSEEK_API_KEY based on provider
doc_id, title, source_path, tags, created_at, and content.doc_id#chunk-001.free-recall: ask the user to explain from memory.qa: ask direct question-answer pairs.application: ask scenario-based transfer questions.doc_id and chunk_id.Run this sequence when the user asks to import local knowledge and create practice:
praxis add "/absolute/path/to/note.md" --type report
input_idpraxis list --limit 20
praxis practice <input_id>
praxis answer <scene_id> --file "/absolute/path/to/answer.md"
praxis show <input_id>
praxis insight <input_id>
praxis export --format md --output "/absolute/path/to/insights.md"
praxis export --format json --output "/absolute/path/to/insights.json"
praxis add for import and initial exercise generation.praxis practice and praxis answer.praxis answer --file instead of interactive stdin in automation flows.praxis add ... --force when user wants reprocessing.praxis --provider openai --model gpt-4.1-mini add "/absolute/path/to/note.md"
praxis add; OCR extraction is built in.praxis show plus praxis insight or praxis export so user gets concrete output artifacts.When executing tasks with this skill, always provide these outputs:
source -> doc_id -> chunk_id -> exercise_id.Use this compact JSON-like structure per exercise:
{
"exercise_id": "ex-...",
"doc_id": "...",
"chunk_id": "...",
"type": "free-recall | qa | application",
"question": "...",
"answer_key": "...",
"rubric": ["point 1", "point 2"],
"difficulty": "easy | medium | hard",
"next_review": "YYYY-MM-DD"
}
For more generation patterns, read references/exercise-patterns.md.