Skip to main content

像素风猫咪塔罗牌终端占卜应用

Project description

Nekomata pixel-art logo

塔罗猫 · Nekomata

住在终端里的像素风猫咪塔罗占卜应用

Language License Assets Python UI

中文名 塔罗猫。Nekomata 取自日语"猫又":传说中的二尾妖猫,擅长变化与预知。

塔罗猫把 78 张塔罗牌全部画成猫咪主题像素牌面,并用 AI 做个性化解牌。它可以是一只住在终端里的占卜猫,也可以切换成 CLI、Web UI 或桌面窗口。

Nekomata TUI screenshot

功能一览

模块 说明
完整猫咪塔罗 22 张大阿尔卡纳 + 56 张小阿尔卡纳,全部融入猫咪元素,牌面支持自适应渲染
5 种牌阵 单牌 / 过去-现在-未来 / 现状-行动-结果 / 身-心-灵 / 五牌十字
AI 解牌 OpenAI 兼容接口,流式输出,支持追问;客户端基于 urllib,无第三方 AI SDK
四种运行模式 TUI / CLI / Web UI / Desktop,按场景选择入口
双语界面 中文 / English,自研 i18n 从 data/locales/ 懒加载

快速开始

Python 3.13+,推荐使用 uv

git clone https://github.com/ce1an69/Nekomata.git
cd Nekomata
uv sync

或直接安装:

pip install nekomata-tarot

可选依赖:

依赖 用途
--extra web Web UI
--extra desktop 桌面窗口,包含 Web 依赖
--extra dev 测试、类型检查等开发工具

运行方式

nekomata
nekomata -c
nekomata -c -q "今天运势如何?" -S past_present_future -y
nekomata --web
nekomata-desktop
命令 模式 说明
nekomata TUI 默认模式,完整终端界面
nekomata -c CLI 纯命令行交互
nekomata -c -q ... -S ... -y CLI 单行占卜,可用于脚本
nekomata --web Web UI FastAPI + vanilla JS,默认端口 8080
nekomata-desktop Desktop PyWebView 原生桌面窗口

命令行参数

参数 说明
--web 启动 Web UI
--port PORT Web 端口,默认 8080
--cli / -c CLI 模式
-q / --question 占卜问题
-s / --seed 随机种子,便于复现
-S / --spread 牌阵 key
-y / --yes 跳过确认

TUI 体验

TUI 模式使用 Kitty Graphics Protocol / Sixel 渲染像素风牌面,并会根据终端尺寸降级为 full / medium / compact / preview / text

体验等级 终端 说明
最佳 Kitty · Ghostty · Contour 原生 TGP 支持,牌面最清晰
良好 WezTerm · Konsole · foot Sixel 自动检测,牌面可显示
纯文本 Alacritty、iTerm2 等其他终端 自动降级为文字/色块牌面

推荐终端窗口至少 160×50 以获得完整布局;低于 80×24 时会进入纯文本体验。

常用快捷键:

q/Esc 返回 · ↑↓←→ 导航 · Enter 确认 · Tab 切换面板 · 1-6 选牌阵 · i 解读 · d 详情 · r 正逆位

配置

首次启动会进入引导界面,用来配置 AI 后端:

配置 说明
API URL OpenAI 兼容接口地址
API Key 模型服务密钥
Model 使用的模型名称
Language 中文 / English

配置默认保存在 .neko/settings.json,也可通过环境变量覆盖:

NEKOMATA_API_URL=...
NEKOMATA_API_KEY=...
NEKOMATA_MODEL=...

技术栈

Python 3.13+ · Textual · textual-image · Pillow · FastAPI + vanilla JS · PyWebView · urllib · 自研 i18n

项目结构

src/nekomata/        主代码:app / cli / desktop / card / spread / render / ai / screens / web
assets/              牌面、字体、图标、README 品牌图与截图
data/                牌义 YAML、i18n JSON、prompt 模板
tests/               pytest 单元 + 集成测试
scripts/             构建脚本

开发

uv sync --extra desktop --extra dev
uv run pytest
uv run pytest --cov=nekomata

测试使用 pytest + pytest-asyncio。TUI 测试通过 app.run_test(),AI 相关测试使用 mock。

许可证

范围 协议
代码 MIT License
美术资源 assets/cards/ CC BY-NC-SA 4.0

致谢

Textual · textual-image · FastAPI · Catppuccin · PyWebView

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nekomata_tarot-0.1.1.tar.gz (54.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nekomata_tarot-0.1.1-py3-none-any.whl (54.1 MB view details)

Uploaded Python 3

File details

Details for the file nekomata_tarot-0.1.1.tar.gz.

File metadata

  • Download URL: nekomata_tarot-0.1.1.tar.gz
  • Upload date:
  • Size: 54.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for nekomata_tarot-0.1.1.tar.gz
Algorithm Hash digest
SHA256 952299424f6f53112b4d3d4c80ec186efaf5cf9f3121f965686c0e9308cbbc08
MD5 f557b94aba0507189e0e449fd346134a
BLAKE2b-256 e0dbd85eeeed76e9758b79e311fded8ad289dc1e7405a5eb04162e83e72a8159

See more details on using hashes here.

Provenance

The following attestation bundles were made for nekomata_tarot-0.1.1.tar.gz:

Publisher: release.yml on ce1an69/Nekomata

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nekomata_tarot-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: nekomata_tarot-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 54.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for nekomata_tarot-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f6d47f817c31c2dbc88adb8f549e5168b007a44687b2eca539eba8109b562d82
MD5 42e4ecf634bd8e9c7ee341a345a37caf
BLAKE2b-256 668da61ea06ee742611ebdef4f4f477ae0b3ebddb30f66c86e8607b93a93ae84

See more details on using hashes here.

Provenance

The following attestation bundles were made for nekomata_tarot-0.1.1-py3-none-any.whl:

Publisher: release.yml on ce1an69/Nekomata

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page