ChatOL
ChatOL: Python client and CLI for Overleaf workflows
快速开始
pip install -e ".[dev]"
oleaf --help
oleaf --version
oleaf --tree
oleaf --tree-brief
python -m pytest -q
python -m build
Overleaf CLI 示例
CLI 只做薄封装;对应能力也可以从 chatol.workflows 和 chatol.client.OverleafClient 直接 import 调用。
配置可以来自当前进程环境变量,也可以来自 ChatEnv active overleaf profile。配置键优先复用 Overleaf 官方已有名称,例如 OVERLEAF_SITE_URL 和 OVERLEAF_ADMIN_EMAIL;官方没有的密码、session、HTTP timeout 等补充字段也统一放在 OVERLEAF_* 命名空间里,不再维护 CHATOL_* 兼容入口。命令行示例使用占位符;真实密码建议用 chatenv paste --stdin、私有 profile、环境变量或 --password-stdin,不要写进 shell history。
export OVERLEAF_SITE_URL="https://overleaf.example.com"
export OVERLEAF_ADMIN_EMAIL="<email>"
export OVERLEAF_ADMIN_PASSWORD="<password>"
oleaf doctor --json
oleaf projects list --json
oleaf projects info "<project-name>" --json
oleaf files pull "<project-name>" ./source --json
oleaf templates init article-basic ./template --json
oleaf templates upload "<project-name>" ./template --json
oleaf compile run "<project-name>" --json
oleaf compile pdf "<project-name>" -o output.pdf --json
oleaf compile output "<project-name>" log -o output.log --json
oleaf compile bundle "<project-name>" -o artifacts --json
oleaf admin doctor --json
密码和 session cookie 也可以通过 --password-stdin / --session-stdin 传入,避免出现在 shell history 或进程参数里。
CLI 规范
ChatOL 依赖 chatstyle>=0.2.0,<0.3.0 和 chatenv>=0.2.10,<0.3.0。CLI 合约包括:
- 根命令显式命名为
oleaf,并提供--version、--tree和--tree-brief。 --tree/--tree-brief由 ChatStyle 从真实 Click 注册表渲染,不维护包内副本。CommandSchema/CommandField描述输入。add_interactive_option()提供统一-i/-I。resolve_command_inputs()统一缺参补问、默认值、TTY 与校验。OverleafConfig通过chatenv.configs注册,凭据从 ChatEnv 的 typed profile/storage 路径读取。
目录结构
src/:包源码tests/code-tests/:代码测试和历史测试迁移tests/cli-tests/:真实 CLI 测试,doc-firsttests/mock-cli-tests/:mock/fake CLI 测试,doc-firstdocs/:长期维护文档,由 mkdocs 构建
开发说明
扩展脚手架前,先阅读 DEVELOP.md 和 AGENTS.md。
Metadata
Release files for ChatOL 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| chatol-0.1.2.tar.gz | 25.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| chatol-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 47.9 kB
Release files / chatol-0.1.2.tar.gz
| Download URL | chatol-0.1.2.tar.gz |
|---|---|
| Size | 25.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b37a7896b925613b9000baa5eadad7a69b79c07b4595c09ceadfb8c16ad141d8
|
|
BLAKE2b-256 checksum How to use checksums |
d05cfe9e9012f3f75ec4998aa8cf7c10956e0d122edd78b7475a72eada19f6eb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 21, 2026.
Transparency logRelease files / chatol-0.1.2-py3-none-any.whl
| Download URL | chatol-0.1.2-py3-none-any.whl |
|---|---|
| Size | 22.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
059f9a1eddefe9e441fe6947874841fb4532c1d6125b84c4ef2f6dc5e655b4c5
|
|
BLAKE2b-256 checksum How to use checksums |
fe74eebcd430764ffee02a8c236deac59399725941403a16267493e42152e3b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 21, 2026.
Transparency log