Metadata-Version: 2.4
Name: deepseek-keeper
Version: 0.2.0
Summary: 离线浏览 DeepSeek 会话 — 导入、搜索、随时翻阅你的对话历史
Project-URL: Homepage, https://github.com/urumchi/deepseek-keeper
Project-URL: Repository, https://github.com/urumchi/deepseek-keeper
Author: deepseek-keeper contributors
License: MIT
License-File: LICENSE
Keywords: backup,conversation,deepseek,llm,markdown
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
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 :: Utilities
Requires-Python: >=3.11
Requires-Dist: flask>=3.0
Requires-Dist: ijson>=3.3
Requires-Dist: markdown>=3.5
Requires-Dist: rich>=13.0
Requires-Dist: tomli-w>=1.0
Requires-Dist: typer>=0.15
Requires-Dist: waitress>=3.0
Description-Content-Type: text/markdown

# Deepseek-Keeper

离线浏览 DeepSeek 对话记录：导入导出数据，在终端或浏览器中随时翻阅。

## 运行截图

### 离线导入并终端浏览

![离线导入并终端浏览](screenshots/import-and-terminal-view.gif)

### 启动 HTTP 服务并在浏览器中浏览

![启动 HTTP 服务并在浏览器中浏览](screenshots/http-serve-and-view.gif)

## 安装

```bash
pip install deepseek-keeper
# 或者
uv tool add deepseek-keeper
```

## 快速开始

```bash
# 1. 从 DeepSeek 网页端导出数据(系统设置-->数据管理-->导出所有历史对话) → 得到一个 ZIP 文件
# 2. 导入数据
dskeeper import ~/Downloads/deepseek_data.zip

# 3. 在终端中浏览
dskeeper list
dskeeper stats

# 4. 或者在浏览器中浏览
dskeeper serve
```

## 命令

### `dskeeper import <path>`

从 DeepSeek 导出的数据中导入对话（支持 ZIP 文件、目录或 JSON 文件）。

```bash
dskeeper import ~/Downloads/deepseek_data.zip
dskeeper import ./export_folder/
dskeeper import data.json

# 强制覆盖已存在的对话
dskeeper import data.zip --force
```

### `dskeeper list`

列出已导入的对话，按时间倒序排列。

```bash
dskeeper list
dskeeper list --limit 10
dskeeper --json list              # JSON 格式输出
```

### `dskeeper stats`

查看知识库统计信息。

```bash
dskeeper stats
```

### `dskeeper serve`

启动 Web 服务，在浏览器中浏览对话。

```bash
dskeeper serve                    # 默认地址: http://127.0.0.1:8080
dskeeper serve --port 3000
dskeeper serve --host 0.0.0.0     # 局域网内可访问
dskeeper serve --no-open          # 不自动打开浏览器
```

### `dskeeper delete`

删除对话。

```bash
dskeeper delete <session-id>      # 按 ID 删除（支持前缀匹配）
dskeeper delete <session-id> -y   # 跳过确认
dskeeper delete --all -y          # 删除全部
```

### `dskeeper config`

管理配置。

```bash
dskeeper config show
dskeeper config set data-dir /custom/path
```

## 全局选项

```
dskeeper [--data-dir <path>] [--verbose] [--json] <command>
```

- `--data-dir, -d`：自定义数据目录（默认：`~/.dskeeper/`）
- `--verbose, -v`：显示详细输出
- `--json`：输出机器可读的 JSON 格式

数据目录的解析优先级：命令行参数 → `DSKEEPER_DATA_DIR` 环境变量 → `./.dskeeper/`（本地目录）→ `~/.dskeeper/config.toml` → `~/.dskeeper/`（默认）

## 数据存储

对话以 Markdown 文件形式存储，并附带元数据索引：

```
~/.dskeeper/
├── config.toml
├── metadata.json
└── conversations/
    ├── TLS连接失败原因及排查建议-7f5516cd.md
    └── ...
```

每个 Markdown 文件包含 YAML 前置元数据以及完整的消息历史。

## 开发

```bash
git clone https://github.com/wh/deepseek-keeper.git
cd deepseek-keeper
uv sync

# 从源码运行（始终使用最新代码）：
uv run dskeeper --help
uv run dskeeper serve

# 或者从本地源码全局安装：
uv tool install --reinstall .
dskeeper serve

# 运行测试：
uv run pytest
```

> **注意**：如果使用 `uvx --from . dskeeper`，当版本号未变化时可能需要加上 `--refresh` 参数来绕过 wheel 缓存：`uvx --from . --refresh dskeeper`

## 许可证

MIT
