Skip to main content

An OpenAI-powered AI CLI demo with local config management.

Project description

32r4-cli-demo

32r4-cli-demo 是一个用 Typer 构建的 OpenAI AI CLI 示例项目。当前版本支持通过固定位置的本地 .env 配置文件管理 api_keybase_urlmodel,并通过 OpenAI Responses API 发起一次性文本问答调用。

安装

推荐使用 uv tool 安装:

uv tool install 32r4-cli-demo

在正式发布到 PyPI 之前,也可以直接从 GitHub 安装:

uv tool install git+https://github.com/32r4/cli-demo.git

配置

推荐直接用 CLI 管理配置文件。

查看当前配置:

cli-demo config show
cli-demo config path

当前配置文件固定路径:

C:\Users\26707\.cli-demo\.env

这个路径不能通过命令或环境变量修改。

设置配置:

cli-demo config set --api-key "your-api-key"
cli-demo config set --base-url "https://api.openai.com/v1"
cli-demo config set --model "gpt-5.4"

也可以一次设置多个值:

cli-demo config set --api-key "your-api-key" --base-url "https://api.openai.com/v1" --model "gpt-5.4"

清除某个配置项:

cli-demo config unset api-key
cli-demo config unset base-url
cli-demo config unset model

说明:

  • api_keybase_urlmodel 都保存在本地配置文件中。
  • 配置文件固定保存在 C:\Users\26707\.cli-demo\.env
  • 直接运行 cli-demo config set 会进入交互式设置。
  • 如果配置文件里没有 api_key,程序仍会回退到 OPENAI_API_KEY 环境变量。
  • 如果配置文件里没有 base_url,程序仍会回退到 OPENAI_BASE_URL 环境变量。
  • 如果配置文件里没有 model,默认使用 gpt-5.4

使用

cli-demo --help
cli-demo --version
cli-demo -v
cli-demo ask "Say hello in one sentence."
cli-demo ask "Explain Typer briefly." --system "You are a concise CLI tutor."
cli-demo ask "Hello" --model gpt-5.4-mini
cli-demo update

cli-demo ask PROMPT

向 OpenAI 发起一次文本问答请求。

cli-demo ask "Say hello in one sentence."
cli-demo ask "Explain Typer briefly." --system "You are a concise CLI tutor."
cli-demo ask "Hello" --model gpt-5.4-mini

可用参数:

  • PROMPT:必填位置参数
  • --model:可选模型覆盖,优先级高于配置文件
  • --system / -s:可选系统提示词

cli-demo --version

显示当前 CLI 版本和生效中的模型。

cli-demo --version
cli-demo -v

cli-demo update

使用 uv tool 升级当前 CLI。

cli-demo update
cli-demo update --dry-run

说明:

  • cli-demo update 会执行 uv tool upgrade 32r4-cli-demo
  • cli-demo update --dry-run 只展示命令,不执行

发布到 PyPI

仓库已经包含 GitHub Actions 发布工作流 release.yml,使用 PyPI Trusted Publishing。

首次发布前,你还需要在 PyPI 做一次配置:

  1. 在 PyPI 创建 32r4-cli-demo 项目或添加 Trusted Publisher。
  2. Publisher 类型选择 GitHub。
  3. 仓库填写 32r4/cli-demo
  4. Workflow 文件名填写 release.yml
  5. Environment 填写 pypi

配置完成后,发布方式有两种:

git tag v0.4.2
git push origin v0.4.2

然后在 GitHub 上创建并发布对应 Release;或者直接手动触发 release 工作流。

本地验证

uv sync
uv build
uv run cli-demo --help
uv run cli-demo --version
uv run cli-demo -v
uv run cli-demo config show
uv run cli-demo config set --model gpt-5.4-mini
uv run cli-demo ask "   "
uv run cli-demo update --dry-run
uv run python -m cli_demo --help

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

32r4_cli_demo-0.4.2.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

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

32r4_cli_demo-0.4.2-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file 32r4_cli_demo-0.4.2.tar.gz.

File metadata

  • Download URL: 32r4_cli_demo-0.4.2.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for 32r4_cli_demo-0.4.2.tar.gz
Algorithm Hash digest
SHA256 ce0273cf89cb805a22b63405671e96450913742800eed99e5b80cc3df4bf4f58
MD5 b0da464ec8f09c4c4ae416717a5f0c82
BLAKE2b-256 7b6b472dd8086384608e781013d7acbc4b8ce9ac90462d7e99508a1db0744af5

See more details on using hashes here.

Provenance

The following attestation bundles were made for 32r4_cli_demo-0.4.2.tar.gz:

Publisher: release.yml on 32r4/cli-demo

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

File details

Details for the file 32r4_cli_demo-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: 32r4_cli_demo-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for 32r4_cli_demo-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 882417a1e07bfbd3a6a0bcccdb8ee59289c8d0c191acda2f5db65b946f850604
MD5 b991b93d18b0116dbbba542ed41a025b
BLAKE2b-256 96ae4d25fcc718e19687dceff34527d3d30ba682b4210e33a76d241e39bba34e

See more details on using hashes here.

Provenance

The following attestation bundles were made for 32r4_cli_demo-0.4.2-py3-none-any.whl:

Publisher: release.yml on 32r4/cli-demo

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