Metadata-Version: 2.4
Name: claude-wiki
Version: 0.5.0
Summary: Claude Wiki - installable hooks and CLI for a personal knowledge base
Project-URL: Homepage, https://github.com/mrrobot0985/claude-wiki
Project-URL: Repository, https://github.com/mrrobot0985/claude-wiki
License: MIT
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.12
Requires-Dist: claude-agent-sdk>=0.1.29
Requires-Dist: platformdirs>=4.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: tzdata>=2024.1
Provides-Extra: dev
Requires-Dist: mdformat-frontmatter>=0.4; extra == 'dev'
Requires-Dist: mdformat-gfm>=0.3; extra == 'dev'
Requires-Dist: mdformat>=0.7; extra == 'dev'
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pre-commit>=3.5; extra == 'dev'
Requires-Dist: pypiserver>=2.0; extra == 'dev'
Requires-Dist: pytest-mock>=3.12; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.5; extra == 'dev'
Description-Content-Type: text/markdown

# claude-wiki

Installable Python package providing Claude Code hooks and a CLI for a personal knowledge base.

## Install

With `uv` (recommended):

```bash
uvx claude-wiki init
```

From source in a clone of this repo:

```bash
uv sync --extra dev --frozen
```

## Usage

Initialize a repository:

```bash
claude-wiki init
```

Daily commands:

```bash
claude-wiki compile [--all] [--file FILE] [--dry-run] [--path PATH]
claude-wiki query "your question" [--file-back]
claude-wiki lint [--structural-only]
claude-wiki migrate [--dry-run] [--path PATH] [--kb-dir KB_DIR] [--daily-dir DAILY_DIR]
claude-wiki rename-catalog [--dry-run] [--path PATH]
```

Hook entry points (called by Claude Code via `.claude/settings.local.json` by default):

```bash
claude-wiki-hook SessionStart
claude-wiki-hook SessionEnd
claude-wiki-hook PreCompact
```

## What `claude-wiki init` creates

```text
my-project/
├── .claude-wiki.lock              # per-repo config (machine-managed)
├── .claude/settings.local.json   # repo-local hook registration (default)
└── .claude/daily/                 # conversation logs (created on first flush)
```

Use `claude-wiki init --global` to write hooks to `~/.claude/settings.json` instead.
Use `claude-wiki init --path PATH` to target a different repository root.

## Configuration

`.claude-wiki.lock` fields:

```json
{
  "repo_name": "my-project",
  "repo_owner": "local",
  "layout_version": "2",
  "kb_dir": "project",
  "daily_dir": ".claude/daily",
  "reports_dir": "reports",
  "timezone": "UTC",
  "compile_after_hour": 18
}
```

- `layout_version` tracks the internal directory-layout generation. New repositories use `"2"`.
- `daily_dir` defaults to `.claude/daily` in project mode and `~/.local/share/claude-wiki-daily/<owner>/<repo>/` in user mode.
- `reports_dir` is **deprecated**; reports are written to the cache directory (`<repo>/.claude/reports/` in project mode).

Set `CLAUDE_WIKI_PROJECT_DIR` to override the knowledge base location.

## Documentation

Full docs are in [`docs/`](docs/).

## Development

```bash
make dev              # install with dev dependencies
make install-precommit # install git hooks (run once per clone)
make test             # run pytest
make lint             # ruff check
make format           # ruff format + mdformat
make typecheck        # mypy
make precommit        # all pre-commit hooks
make all              # full CI gate (format, lint, typecheck, test, precommit)
```
