ChatZulip
ChatZulip 是 ChatArch 的 Zulip 集成包,提供 ChatEnv-backed Zulip 配置、Zulip REST client、read-oriented CLI、Markdown news digest 和 MCP adapter。
快速开始
pip install -e ".[dev]"
chatzulip --help
chatzulip --version
python -m pytest -q
# 先用 ChatEnv 配置 Zulip 凭据,再使用 CLI。
chatenv test -t zulip -I
chatzulip streams
chatzulip topics --stream general
chatzulip messages --stream general --before 5
chatzulip news --stream general --since-hours 24 --output zulip-news.md
完整包边界、CLI/API 约定和发布顺序见文档页:ChatZulip 规范。
CLI 规范
这个包依赖 chatstyle>=0.1.0,<0.2.0、chatenv>=0.2.3,<0.3.0 和 httpx>=0.28.1,<1.0,新的命令应优先使用:
CommandSchema/CommandField描述输入。add_interactive_option()提供统一-i/-I。resolve_command_inputs()统一缺参补问、默认值、TTY 与校验。- 默认生成
config.py和chatenv.configsentry point,使包可被 ChatEnv 发现;只有明确不需要 ChatEnv 接入时才使用--without-chatenv-provider。
目录结构
src/:包源码tests/code-tests/:client、operations、config 等代码测试tests/cli-tests/:真实服务/人工运行的 doc-first CLI 用例tests/mock-cli-tests/:fake client / mock CLI 自动化测试tests/test_version.py:模板级版本 smokedocs/:长期维护文档,由 mkdocs 构建
开发说明
扩展脚手架前,先阅读 DEVELOP.md 和 AGENTS.md。
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chatzulip-0.1.0.tar.gz.
File metadata
- Download URL: chatzulip-0.1.0.tar.gz
- Upload date:
- Size: 12.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9619f6400a5790bb6615bb670c7bef018a0ada53aec5e655aef321b6e6c89c23
|
|
| MD5 |
69414553e2c194fe3a4f79623fbcd2f4
|
|
| BLAKE2b-256 |
27a19ba754a53f64da95fa6591503bbfc53360ef95e53bf0ad6d8245d38455ed
|
Provenance
The following attestation bundles were made for chatzulip-0.1.0.tar.gz:
Publisher:
publish.yml on ChatArch/ChatZulip
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
chatzulip-0.1.0.tar.gz -
Subject digest:
9619f6400a5790bb6615bb670c7bef018a0ada53aec5e655aef321b6e6c89c23 - Sigstore transparency entry: 2294212763
- Sigstore integration time:
-
Permalink:
ChatArch/ChatZulip@103ec96164767e5178224efeafcd669df4e4ce23 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ChatArch
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@103ec96164767e5178224efeafcd669df4e4ce23 -
Trigger Event:
push
-
Statement type:
File details
Details for the file chatzulip-0.1.0-py3-none-any.whl.
File metadata
- Download URL: chatzulip-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc11f0fe25bc6253dbdc9f2c869bc507e152a6038f3b746eb69ed6156452c431
|
|
| MD5 |
49bc6948167ff8fc477e7c906e915a14
|
|
| BLAKE2b-256 |
3593bc24c039d50312d99c152c5d5460eece01467827522d48b5e090c2dabfe3
|
Provenance
The following attestation bundles were made for chatzulip-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on ChatArch/ChatZulip
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
chatzulip-0.1.0-py3-none-any.whl -
Subject digest:
fc11f0fe25bc6253dbdc9f2c869bc507e152a6038f3b746eb69ed6156452c431 - Sigstore transparency entry: 2294212839
- Sigstore integration time:
-
Permalink:
ChatArch/ChatZulip@103ec96164767e5178224efeafcd669df4e4ce23 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ChatArch
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@103ec96164767e5178224efeafcd669df4e4ce23 -
Trigger Event:
push
-
Statement type: