codexbar-menubar-ai-usage-tracker

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

CodexBar Menu Bar AI Usage Tracker

CodexBar 菜单栏AI使用情况追踪器

Skill by ara.so — Codex Skills collection.
CodexBar is a macOS menu bar application that displays real-time usage statistics for AI coding assistants including OpenAI Codex, Claude, Cursor, Gemini, Copilot, and 25+ other providers. It shows token limits, credit balances, reset countdowns, and provider status without requiring separate logins. Built with Swift for macOS 14+, it includes both a GUI app and CLI for scripting.
ara.so提供的Skill — Codex Skills合集。
CodexBar是一款macOS菜单栏应用,可实时显示AI编码助手的使用统计数据,支持OpenAI Codex、Claude、Cursor、Gemini、Copilot等25+种服务商。无需单独登录,即可查看令牌限制、信用余额、重置倒计时以及服务商状态。基于Swift开发,适用于macOS 14+,包含GUI应用和用于脚本的CLI工具。

Installation

安装

Homebrew (Recommended)

Homebrew(推荐)

bash
brew install --cask steipete/tap/codexbar
bash
brew install --cask steipete/tap/codexbar

GitHub Releases

GitHub Releases

Download the latest
.dmg
from:
https://github.com/steipete/CodexBar/releases/latest
从以下链接下载最新的
.dmg
文件:
https://github.com/steipete/CodexBar/releases/latest

CLI Only (macOS/Linux)

仅CLI版本(macOS/Linux)

bash
undefined
bash
undefined

macOS/Linux CLI via Homebrew

通过Homebrew安装macOS/Linux CLI

brew install steipete/tap/codexbar
brew install steipete/tap/codexbar

Or download tarballs from releases:

或从Releases下载压缩包:

CodexBarCLI-v<version>-macos-arm64.tar.gz

CodexBarCLI-v<version>-macos-arm64.tar.gz

CodexBarCLI-v<version>-linux-x86_64.tar.gz

CodexBarCLI-v<version>-linux-x86_64.tar.gz

undefined
undefined

First Launch

首次启动

  1. Open CodexBar from Applications
  2. Go to Settings → Providers
  3. Enable the providers you use (Codex, Claude, Cursor, etc.)
  4. Authenticate via the supported methods for each provider
  1. 从应用程序中打开CodexBar
  2. 进入「设置」→「服务商」
  3. 启用你使用的服务商(Codex、Claude、Cursor等)
  4. 通过各服务商支持的方式完成认证

Requirements

系统要求

  • macOS: 14+ (Sonoma) for GUI app
  • Linux: CLI only
  • Permissions (optional, per provider):
    • Full Disk Access: for Safari cookie access
    • Keychain: for browser cookie decryption and OAuth tokens
  • macOS: GUI应用需要14+(Sonoma)版本
  • Linux: 仅支持CLI版本
  • 权限(可选,依服务商而定):
    • 全磁盘访问权限:用于读取Safari Cookie
    • 钥匙串访问权限:用于解密浏览器Cookie和存储OAuth令牌

Configuration

配置

Using the GUI

使用GUI

Settings → Providers shows all available providers with toggles. Each provider has specific auth requirements listed in its documentation.
「设置」→「服务商」页面展示所有可用服务商及开关。每个服务商的具体认证要求可查看其文档说明。

Using the CLI

使用CLI

Configuration lives in
~/.codexbar/config.json
:
bash
undefined
配置文件位于
~/.codexbar/config.json
bash
undefined

List all providers

列出所有服务商

codexbar config providers
codexbar config providers

Enable a provider

启用某个服务商

codexbar config enable --provider grok
codexbar config enable --provider grok

Disable a provider

禁用某个服务商

codexbar config disable --provider cursor
codexbar config disable --provider cursor

Set API key from environment variable

通过环境变量设置API密钥

printf '%s' "$OPENROUTER_API_KEY" | codexbar config set-api-key --provider openrouter --stdin
printf '%s' "$OPENROUTER_API_KEY" | codexbar config set-api-key --provider openrouter --stdin

Set API key directly (not recommended for scripts)

直接设置API密钥(不推荐在脚本中使用)

codexbar config set-api-key --provider deepseek --api-key "sk-xxxxx"
codexbar config set-api-key --provider deepseek --api-key "sk-xxxxx"

Set API key without enabling

设置API密钥但不启用服务商

printf '%s' "$VENICE_API_KEY" | codexbar config set-api-key --provider venice --stdin --no-enable

The `set-api-key` command:
- Trims input whitespace
- Sets restrictive file permissions on config
- Enables the provider by default (use `--no-enable` to prevent)
printf '%s' "$VENICE_API_KEY" | codexbar config set-api-key --provider venice --stdin --no-enable

`set-api-key`命令特性:
- 自动去除输入中的空白字符
- 为配置文件设置严格的权限
- 默认启用对应服务商(使用`--no-enable`参数可取消)

Key Commands

核心命令

CLI Usage

CLI使用示例

bash
undefined
bash
undefined

Show usage for a specific provider

查看指定服务商的使用情况

codexbar usage --provider codex
codexbar usage --provider codex

Check cost/usage for last 30 days (local scan)

查看过去30天的成本/使用情况(本地扫描)

codexbar cost --provider codex codexbar cost --provider claude codexbar cost --provider both
codexbar cost --provider codex codexbar cost --provider claude codexbar cost --provider both

Refresh all enabled providers

刷新所有已启用的服务商数据

codexbar refresh
codexbar refresh

Show app version

查看应用版本

codexbar version
codexbar version

Configuration commands

配置相关命令

codexbar config providers codexbar config enable --provider <name> codexbar config disable --provider <name> codexbar config set-api-key --provider <name> --stdin
undefined
codexbar config providers codexbar config enable --provider <name> codexbar config disable --provider <name> codexbar config set-api-key --provider <name> --stdin
undefined

Exit Codes

退出码说明

  • 0
    : Success
  • 1
    : General error
  • 2
    : Authentication/configuration error
  • 3
    : Network/API error
  • 0
    : 执行成功
  • 1
    : 通用错误
  • 2
    : 认证/配置错误
  • 3
    : 网络/API错误

Provider Configuration Examples

服务商配置示例

OpenAI Codex

OpenAI Codex

Authentication: OAuth API or local Codex CLI
bash
undefined
认证方式: OAuth API或本地Codex CLI
bash
undefined

Enable Codex provider

启用Codex服务商

codexbar config enable --provider codex
codexbar config enable --provider codex

Optional: Add OpenAI web dashboard cookies for extras

可选:添加OpenAI网页控制台Cookie以获取额外数据

(code review remaining, usage breakdown, credits history)

(剩余代码审核次数、使用明细、信用历史)

Configure via Settings → Providers → Codex → OpenAI cookies

通过「设置」→「服务商」→「Codex」→「OpenAI cookies」配置

undefined
undefined

Claude (Anthropic)

Claude(Anthropic)

Authentication: OAuth API, browser cookies, or CLI PTY fallback
bash
undefined
认证方式: OAuth API、浏览器Cookie或CLI PTY fallback
bash
undefined

Enable Claude

启用Claude

codexbar config enable --provider claude
codexbar config enable --provider claude

Uses OAuth by default

默认使用OAuth

Falls back to browser cookies or Claude CLI if needed

必要时自动 fallback 到浏览器Cookie或Claude CLI

undefined
undefined

Cursor

Cursor

Authentication: Browser session cookies
bash
codexbar config enable --provider cursor
认证方式: 浏览器会话Cookie
bash
codexbar config enable --provider cursor

Requires browser cookies from cursor.sh

需要从cursor.sh获取浏览器会话Cookie

Shows plan, usage, and billing resets

可查看套餐、使用情况及计费重置信息

undefined
undefined

OpenRouter

OpenRouter

Authentication: API token
bash
undefined
认证方式: API令牌
bash
undefined

Set API key from environment

通过环境变量设置API密钥

printf '%s' "$OPENROUTER_API_KEY" | codexbar config set-api-key --provider openrouter --stdin
printf '%s' "$OPENROUTER_API_KEY" | codexbar config set-api-key --provider openrouter --stdin

Or configure in GUI: Settings → Providers → OpenRouter

或在GUI中配置:「设置」→「服务商」→「OpenRouter」

undefined
undefined

DeepSeek

DeepSeek

Authentication: API key
bash
undefined
认证方式: API密钥
bash
undefined

Set API key securely

安全设置API密钥

printf '%s' "$DEEPSEEK_API_KEY" | codexbar config set-api-key --provider deepseek --stdin
undefined
printf '%s' "$DEEPSEEK_API_KEY" | codexbar config set-api-key --provider deepseek --stdin
undefined

Gemini

Gemini

Authentication: OAuth via Gemini CLI credentials
bash
codexbar config enable --provider gemini
认证方式: 通过Gemini CLI凭证进行OAuth
bash
codexbar config enable --provider gemini

Uses gcloud OAuth, no browser cookies required

使用gcloud OAuth,无需浏览器Cookie

undefined
undefined

GitHub Copilot

GitHub Copilot

Authentication: GitHub device flow
bash
codexbar config enable --provider copilot
认证方式: GitHub设备流
bash
codexbar config enable --provider copilot

Uses GitHub device flow + Copilot internal usage API

使用GitHub设备流 + Copilot内部使用API

undefined
undefined

Swift Integration

Swift集成

CodexBar is built with Swift. To integrate provider parsing or usage tracking:
CodexBar基于Swift开发。如需集成服务商解析或使用情况追踪功能:

Reading Configuration

读取配置

swift
import Foundation

struct CodexBarConfig: Codable {
    var providers: [String: ProviderConfig]
}

struct ProviderConfig: Codable {
    var enabled: Bool
    var apiKey: String?
}

func loadConfig() throws -> CodexBarConfig {
    let configPath = FileManager.default.homeDirectoryForCurrentUser
        .appendingPathComponent(".codexbar/config.json")
    let data = try Data(contentsOf: configPath)
    return try JSONDecoder().decode(CodexBarConfig.self, from: data)
}

// Usage
do {
    let config = try loadConfig()
    if config.providers["codex"]?.enabled == true {
        print("Codex provider is enabled")
    }
} catch {
    print("Failed to load config: \(error)")
}
swift
import Foundation

struct CodexBarConfig: Codable {
    var providers: [String: ProviderConfig]
}

struct ProviderConfig: Codable {
    var enabled: Bool
    var apiKey: String?
}

func loadConfig() throws -> CodexBarConfig {
    let configPath = FileManager.default.homeDirectoryForCurrentUser
        .appendingPathComponent(".codexbar/config.json")
    let data = try Data(contentsOf: configPath)
    return try JSONDecoder().decode(CodexBarConfig.self, from: data)
}

// 使用示例
do {
    let config = try loadConfig()
    if config.providers["codex"]?.enabled == true {
        print("Codex服务商已启用")
    }
} catch {
    print("加载配置失败: \(error)")
}

Calling CLI from Swift

在Swift中调用CLI

swift
import Foundation

func runCodexBarCLI(args: [String]) throws -> String {
    let process = Process()
    process.executableURL = URL(fileURLWithPath: "/opt/homebrew/bin/codexbar")
    process.arguments = args
    
    let pipe = Pipe()
    process.standardOutput = pipe
    
    try process.run()
    process.waitUntilExit()
    
    let data = pipe.fileHandleForReading.readDataToEndOfFile()
    return String(data: data, encoding: .utf8) ?? ""
}

// Get usage for a provider
do {
    let output = try runCodexBarCLI(args: ["usage", "--provider", "codex"])
    print(output)
} catch {
    print("CLI error: \(error)")
}
swift
import Foundation

func runCodexBarCLI(args: [String]) throws -> String {
    let process = Process()
    process.executableURL = URL(fileURLWithPath: "/opt/homebrew/bin/codexbar")
    process.arguments = args
    
    let pipe = Pipe()
    process.standardOutput = pipe
    
    try process.run()
    process.waitUntilExit()
    
    let data = pipe.fileHandleForReading.readDataToEndOfFile()
    return String(data: data, encoding: .utf8) ?? ""
}

// 获取指定服务商的使用情况
do {
    let output = try runCodexBarCLI(args: ["usage", "--provider", "codex"])
    print(output)
} catch {
    print("CLI执行错误: \(error)")
}

Common Patterns

常见使用场景

Scripting Cost Tracking

脚本化成本追踪

bash
#!/bin/bash
bash
#!/bin/bash

Track AI coding costs daily

每日追踪AI编码成本

LOG_FILE="$HOME/ai-usage-log.txt" DATE=$(date +%Y-%m-%d)
echo "=== $DATE ===" >> "$LOG_FILE" codexbar cost --provider both >> "$LOG_FILE" 2>&1
LOG_FILE="$HOME/ai-usage-log.txt" DATE=$(date +%Y-%m-%d)
echo "=== $DATE ===" >> "$LOG_FILE" codexbar cost --provider both >> "$LOG_FILE" 2>&1

Alert if cost exceeds threshold

当成本超过阈值时发送告警

COST=$(codexbar cost --provider codex | grep -o '$[0-9.]*' | head -1 | tr -d '$') if (( $(echo "$COST > 50.0" | bc -l) )); then echo "Warning: Codex cost ($COST) exceeds $50" | mail -s "AI Cost Alert" user@example.com fi
undefined
COST=$(codexbar cost --provider codex | grep -o '$[0-9.]*' | head -1 | tr -d '$') if (( $(echo "$COST > 50.0" | bc -l) )); then echo "警告: Codex成本($COST)超过50美元" | mail -s "AI成本告警" user@example.com fi
undefined

Automated Provider Enablement

自动启用服务商

bash
#!/bin/bash
bash
#!/bin/bash

Enable all providers from environment

通过环境变量启用所有服务商

PROVIDERS=( "codex:$OPENAI_API_KEY" "openrouter:$OPENROUTER_API_KEY" "deepseek:$DEEPSEEK_API_KEY" "venice:$VENICE_API_KEY" )
for entry in "${PROVIDERS[@]}"; do IFS=: read -r provider key <<< "$entry" if [ -n "$key" ]; then printf '%s' "$key" | codexbar config set-api-key --provider "$provider" --stdin echo "Enabled $provider" fi done
undefined
PROVIDERS=( "codex:$OPENAI_API_KEY" "openrouter:$OPENROUTER_API_KEY" "deepseek:$DEEPSEEK_API_KEY" "venice:$VENICE_API_KEY" )
for entry in "${PROVIDERS[@]}"; do IFS=: read -r provider key <<< "$entry" if [ -n "$key" ]; then printf '%s' "$key" | codexbar config set-api-key --provider "$provider" --stdin echo "已启用$provider" fi done
undefined

Menu Bar Icon Modes

菜单栏图标模式

CodexBar supports two display modes:
Individual Icons (default):
  • One menu bar icon per enabled provider
  • Each shows provider-specific usage bar
Merge Icons Mode:
  • Single menu bar icon with all providers
  • Click to switch between providers
  • Enable in Settings → Display → Merge Icons
CodexBar支持两种显示模式:
独立图标模式(默认):
  • 每个已启用的服务商对应一个菜单栏图标
  • 每个图标显示服务商专属的使用进度条
合并图标模式:
  • 单个菜单栏图标整合所有服务商
  • 点击可切换不同服务商
  • 在「设置」→「显示」→「合并图标」中启用

Refresh Cadence

刷新频率设置

bash
undefined
bash
undefined

Set refresh interval via GUI: Settings → Refresh

通过GUI设置刷新间隔:「设置」→「刷新」

Options: manual, 1m, 2m, 5m, 15m

选项:手动、1分钟、2分钟、5分钟、15分钟

Or edit ~/.codexbar/config.json:

或编辑~/.codexbar/config.json:

{ "refreshInterval": 300 // 5 minutes in seconds }
undefined
{ "refreshInterval": 300 // 单位为秒,此处为5分钟 }
undefined

Troubleshooting

故障排查

"Full Disk Access required" for Safari cookies

"需要全磁盘访问权限"以读取Safari Cookie

  1. Open System SettingsPrivacy & SecurityFull Disk Access
  2. Add
    CodexBar.app
  3. Restart CodexBar
Alternative: Use Chrome/Brave/Arc cookies or API keys instead.
  1. 打开「系统设置」→「隐私与安全性」→「全磁盘访问权限」
  2. 添加
    CodexBar.app
  3. 重启CodexBar
替代方案:使用Chrome/Brave/Arc的Cookie或API密钥。

Keychain prompts for browser cookies

读取浏览器Cookie时弹出钥匙串授权提示

  1. Open Keychain Access.app
  2. Search for "Chrome Safe Storage" (or your browser)
  3. Double-click → Access Control tab
  4. Click + and add
    CodexBar.app
  5. Save and restart CodexBar
  1. 打开「钥匙串访问.app」
  2. 搜索「Chrome Safe Storage」(或你的浏览器名称)
  3. 双击打开→「访问控制」标签页
  4. 点击「+」并添加
    CodexBar.app
  5. 保存并重启CodexBar

Keychain prompts for Claude OAuth

Claude OAuth的钥匙串授权提示

  1. Open Keychain Access.app
  2. Search for "Claude Code-credentials"
  3. Double-click → Access Control tab
  4. Click + and add
    CodexBar.app
  5. Save and restart CodexBar
  1. 打开「钥匙串访问.app」
  2. 搜索「Claude Code-credentials」
  3. 双击打开→「访问控制」标签页
  4. 点击「+」并添加
    CodexBar.app
  5. 保存并重启CodexBar

Provider shows "stale" or "error"

服务商显示「过期」或「错误」状态

bash
undefined
bash
undefined

Check provider status via CLI

通过CLI检查服务商状态

codexbar usage --provider <name>
codexbar usage --provider <name>

Force refresh

强制刷新数据

codexbar refresh
codexbar refresh

Check logs (GUI app)

查看日志(GUI应用)

Console.app → search for "CodexBar"

打开「控制台.app」→ 搜索"CodexBar"

Verify authentication

验证认证状态

codexbar config providers
undefined
codexbar config providers
undefined

CLI not found after Homebrew install

Homebrew安装后找不到CLI命令

bash
undefined
bash
undefined

Ensure Homebrew bin is in PATH

确保Homebrew的bin目录在PATH中

echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zshrc source ~/.zshrc
echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zshrc source ~/.zshrc

Verify installation

验证安装

which codexbar codexbar version
undefined
which codexbar codexbar version
undefined

"Permission denied" on config file

配置文件提示「权限被拒绝」

bash
undefined
bash
undefined

Fix permissions

修复权限

chmod 600 ~/.codexbar/config.json
undefined
chmod 600 ~/.codexbar/config.json
undefined

Provider authentication issues

服务商认证问题

Codex/OpenAI:
  • Ensure
    openai
    CLI is installed and authenticated:
    openai auth login
  • Or configure API key in Settings
Claude:
  • Install Claude CLI:
    brew install anthropics/claude/claude
  • Authenticate:
    claude auth login
Cursor:
  • Sign in to cursor.sh in browser
  • CodexBar will read session cookies
Gemini:
  • Install
    gcloud
    CLI
  • Authenticate:
    gcloud auth login
Codex/OpenAI:
  • 确保已安装并认证
    openai
    CLI:
    openai auth login
  • 或在设置中配置API密钥
Claude:
  • 安装Claude CLI:
    brew install anthropics/claude/claude
  • 完成认证:
    claude auth login
Cursor:
  • 在浏览器中登录cursor.sh
  • CodexBar会自动读取会话Cookie
Gemini:
  • 安装
    gcloud
    CLI
  • 完成认证:
    gcloud auth login

Advanced Usage

高级用法

Local Cost Scanning

本地成本扫描

CodexBar can scan local JSONL logs for Codex and Claude usage over the last 30 days:
bash
undefined
CodexBar可扫描本地JSONL日志,查看过去30天内Codex和Claude的使用情况:
bash
undefined

Scan Codex local logs

扫描Codex本地日志

codexbar cost --provider codex
codexbar cost --provider codex

Scan Claude local logs

扫描Claude本地日志

codexbar cost --provider claude
codexbar cost --provider claude

Scan both

同时扫描两者

codexbar cost --provider both

Logs locations:
- **Codex**: `~/Library/Application Support/Code/User/globalStorage/openai.codex/logs/`
- **Claude**: `~/Library/Application Support/Claude/claude_desktop_config.json` (log path)
codexbar cost --provider both

日志位置:
- **Codex**: `~/Library/Application Support/Code/User/globalStorage/openai.codex/logs/`
- **Claude**: `~/Library/Application Support/Claude/claude_desktop_config.json`(日志路径)

Provider Status Polling

服务商状态轮询

CodexBar polls provider status pages and shows incident badges:
  • Green: Operational
  • Yellow: Degraded performance
  • Red: Outage
  • Overlay indicator on menu bar icon
Configure in Settings → Status Polling.
CodexBar会轮询服务商状态页面,并显示事件标识:
  • 绿色:正常运行
  • 黄色:性能下降
  • 红色:服务中断
  • 菜单栏图标上会显示叠加标识
在「设置」→「状态轮询」中配置。

Widgets (macOS)

Widgets(macOS)

CodexBar includes WidgetKit widgets for supported providers:
  1. Right-click Desktop → Edit Widgets
  2. Search "CodexBar"
  3. Add provider widgets to desktop or Notification Center
Supported: Codex, Claude, Cursor, Copilot, OpenRouter
CodexBar包含支持部分服务商的WidgetKit组件:
  1. 右键点击桌面→「编辑小组件」
  2. 搜索「CodexBar」
  3. 将服务商组件添加到桌面或通知中心
支持的服务商:Codex、Claude、Cursor、Copilot、OpenRouter

Notifications

通知提醒

Enable quota notifications in Settings:
  • Session quota warnings
  • Weekly reset notifications
  • Optional confetti effect on reset 🎉
在设置中启用配额通知:
  • 会话配额警告
  • 每周重置通知
  • 重置时可选开启庆祝特效 🎉

Environment Variables

环境变量

bash
undefined
bash
undefined

Provider API keys (examples)

服务商API密钥示例

export OPENAI_API_KEY="sk-proj-xxxxx" export ANTHROPIC_API_KEY="sk-ant-xxxxx" export OPENROUTER_API_KEY="sk-or-xxxxx" export DEEPSEEK_API_KEY="sk-xxxxx" export VENICE_API_KEY="xxxxx" export MOONSHOT_API_KEY="sk-xxxxx" export ZAI_API_TOKEN="xxxxx" export WARP_API_TOKEN="xxxxx"
export OPENAI_API_KEY="sk-proj-xxxxx" export ANTHROPIC_API_KEY="sk-ant-xxxxx" export OPENROUTER_API_KEY="sk-or-xxxxx" export DEEPSEEK_API_KEY="sk-xxxxx" export VENICE_API_KEY="xxxxx" export MOONSHOT_API_KEY="sk-xxxxx" export ZAI_API_TOKEN="xxxxx" export WARP_API_TOKEN="xxxxx"

Set all at once

批量设置

cat > ~/.codexbar.env << 'EOF' export OPENROUTER_API_KEY="sk-or-xxxxx" export DEEPSEEK_API_KEY="sk-xxxxx" EOF
source ~/.codexbar.env
undefined
cat > ~/.codexbar.env << 'EOF' export OPENROUTER_API_KEY="sk-or-xxxxx" export DEEPSEEK_API_KEY="sk-xxxxx" EOF
source ~/.codexbar.env
undefined

Resources

资源

  • Documentation:
    docs/
    directory in repository
  • Provider details:
    docs/providers.md
  • CLI reference:
    docs/cli.md
  • Development guide:
    docs/DEVELOPMENT.md
  • Architecture:
    docs/architecture.md
  • Issue tracker: GitHub Issues with labels (see
    docs/ISSUE_LABELING.md
    )
  • 文档: 仓库中的
    docs/
    目录
  • 服务商详情:
    docs/providers.md
  • CLI参考:
    docs/cli.md
  • 开发指南:
    docs/DEVELOPMENT.md
  • 架构说明:
    docs/architecture.md
  • 问题追踪: GitHub Issues(标签规则见
    docs/ISSUE_LABELING.md

Privacy & Security

隐私与安全

  • No password storage: CodexBar reuses browser sessions, OAuth tokens, and API keys
  • On-device parsing: Usage data stays local
  • Restrictive permissions: Config file has
    600
    permissions
  • Known locations only: Reads specific config files, not filesystem crawling
  • Open source: Full audit available at
    github.com/steipete/CodexBar
See privacy discussion: Issue #12
  • 不存储密码: CodexBar复用浏览器会话、OAuth令牌和API密钥
  • 本地解析: 使用数据全程保存在本地设备
  • 严格权限: 配置文件使用
    600
    权限
  • 仅访问指定位置: 仅读取特定配置文件,不会遍历文件系统
  • 开源: 完整代码可在
    github.com/steipete/CodexBar
    查看审计
隐私讨论详情:Issue #12