Metadata-Version: 2.4
Name: termcap
Version: 0.2.2
Summary: Terminal capture tool - Record terminal sessions as SVG animations
Author-email: rexwzh <1073853456@qq.com>
License: MIT License
Project-URL: Homepage, https://arch.gh.wzhecnu.cn/TermCap/
Project-URL: Documentation, https://arch.gh.wzhecnu.cn/TermCap/
Project-URL: Source, https://github.com/ChatArch/TermCap
Project-URL: Issues, https://github.com/ChatArch/TermCap/issues
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: BSD
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: System :: Shells
Classifier: Topic :: Terminals
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: lxml
Requires-Dist: pyte
Requires-Dist: wcwidth
Requires-Dist: click
Requires-Dist: platformdirs
Requires-Dist: toml
Requires-Dist: rich
Requires-Dist: pillow
Requires-Dist: selenium>=4.10
Requires-Dist: webdriver-manager>=4.0
Provides-Extra: dev
Requires-Dist: coverage; extra == "dev"
Requires-Dist: pylint; extra == "dev"
Requires-Dist: twine; extra == "dev"
Requires-Dist: wheel; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: mkdocs; extra == "dev"
Requires-Dist: mkdocs-material; extra == "dev"
Requires-Dist: mkdocs-minify-plugin; extra == "dev"
Requires-Dist: mkdocs-static-i18n; extra == "dev"
Requires-Dist: mike; extra == "dev"
Provides-Extra: docs
Requires-Dist: mkdocs; extra == "docs"
Requires-Dist: mkdocs-material; extra == "docs"
Requires-Dist: mkdocs-minify-plugin; extra == "docs"
Requires-Dist: mkdocs-static-i18n; extra == "docs"
Requires-Dist: mike; extra == "docs"
Dynamic: license-file

# TermCap

[![测试](https://github.com/ChatArch/TermCap/actions/workflows/ci.yml/badge.svg)](https://github.com/ChatArch/TermCap/actions/workflows/ci.yml)
[![文档](https://github.com/ChatArch/TermCap/actions/workflows/deploy.yml/badge.svg)](https://arch.gh.wzhecnu.cn/TermCap/)
[![PyPI](https://img.shields.io/pypi/v/termcap.svg)](https://pypi.org/project/termcap/)

TermCap 是一个 Python 终端录制与渲染工具：把 PTY 会话保存为 asciicast v2，并输出 SVG 动画、静态 SVG 帧或 GIF。

- [完整文档](https://arch.gh.wzhecnu.cn/TermCap/)
- [快速开始](https://arch.gh.wzhecnu.cn/TermCap/quickstart/)
- [CLI 树](https://arch.gh.wzhecnu.cn/TermCap/cli-tree/)
- [录制与渲染](https://arch.gh.wzhecnu.cn/TermCap/rendering/)
- [英文版](README.en.md)

## 核心能力

- 交互 shell 与单命令 PTY 录制
- 兼容 asciinema 的 `.cast` 格式
- ANSI 颜色、光标、文本样式和宽字符渲染
- 模板化 SVG 动画与 16 套内置主题
- CAST→SVG、CAST→GIF、SVG→GIF
- 关键帧确定性采样和 Chrome viewport 自动校正

<p align="center">
  <a href="docs/examples/index.md">
    <img src="docs/assets/examples/quickstart.gif" width="80%" alt="TermCap 终端录制导出 GIF 示例">
  </a>
</p>

<p align="center">
  <a href="docs/assets/examples/quickstart.svg">查看 SVG</a> ·
  <a href="docs/examples/index.md">查看完整生成命令</a>
</p>

## 安装

TermCap 支持 Linux、macOS 和 BSD，需要 Python 3.8 或更高版本。GIF 导出需要 Google Chrome。

```bash
python -m pip install termcap
termcap --version
```

## 最短工作流

```bash
termcap record demo.cast -g 80x20
termcap render demo.cast demo.svg
termcap render demo.cast demo.gif --format gif
```

录制单条命令：

```bash
termcap record tests.cast -g 100x24 -c "python -m pytest -q"
```

已有 SVG 转 GIF：

```bash
termcap svg2gif demo.svg demo.gif --speed 1 --loop 0
```

## 文档开发

```bash
python -m pip install -e '.[dev,docs]'
mkdocs serve
mkdocs build --strict
```

## 许可证

MIT License
