Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.es-MX.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Win-CodexBar

[English](./README.md) | [简体中文](./README.zh-CN.md) | [繁體中文(臺灣)](./README.zh-TW.md) | [日本語](./README.ja-JP.md) | [한국어](./README.ko-KR.md) | [Español mexicano](./README.es-MX.md) | [Türkçe](./README.tr-TR.md)
[English](./README.md) | [简体中文](./README.zh-CN.md) | [繁體中文(臺灣)](./README.zh-TW.md) | [日本語](./README.ja-JP.md) | [한국어](./README.ko-KR.md) | [Español mexicano](./README.es-MX.md) | [Português (Brasil)](./README.pt-BR.md) | [Türkçe](./README.tr-TR.md)

Win-CodexBar es una aplicación de bandeja del sistema para Windows que mantiene visible el uso de herramientas de codificación con IA sin necesidad de abrir una docena de paneles. Traslada el espíritu de [CodexBar](https://github.com/steipete/CodexBar) a un entorno de escritorio Tauri + React respaldado por lógica compartida de proveedores en Rust.

Expand Down
2 changes: 1 addition & 1 deletion README.ja-JP.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Win-CodexBar

[English](./README.md) | [简体中文](./README.zh-CN.md) | [繁體中文(臺灣)](./README.zh-TW.md) | [日本語](./README.ja-JP.md) | [한국어](./README.ko-KR.md) | [Español mexicano](./README.es-MX.md) | [Türkçe](./README.tr-TR.md)
[English](./README.md) | [简体中文](./README.zh-CN.md) | [繁體中文(臺灣)](./README.zh-TW.md) | [日本語](./README.ja-JP.md) | [한국어](./README.ko-KR.md) | [Español mexicano](./README.es-MX.md) | [Português (Brasil)](./README.pt-BR.md) | [Türkçe](./README.tr-TR.md)

Win-CodexBar は、複数の AI コーディングツールの使用量を Windows のシステムトレイから確認できるデスクトップアプリです。[CodexBar](https://github.com/steipete/CodexBar) の考え方を、Tauri + React のデスクトップシェルと共有 Rust バックエンドで Windows 向けに移植しています。

Expand Down
2 changes: 1 addition & 1 deletion README.ko-KR.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Win-CodexBar

[English](./README.md) | [简体中文](./README.zh-CN.md) | [繁體中文(臺灣)](./README.zh-TW.md) | [日本語](./README.ja-JP.md) | [한국어](./README.ko-KR.md) | [Español mexicano](./README.es-MX.md) | [Türkçe](./README.tr-TR.md)
[English](./README.md) | [简体中文](./README.zh-CN.md) | [繁體中文(臺灣)](./README.zh-TW.md) | [日本語](./README.ja-JP.md) | [한국어](./README.ko-KR.md) | [Español mexicano](./README.es-MX.md) | [Português (Brasil)](./README.pt-BR.md) | [Türkçe](./README.tr-TR.md)

Win-CodexBar는 여러 AI 코딩 도구의 사용량을 Windows 시스템 트레이에서 바로 확인할 수 있게 해 주는 데스크톱 앱입니다. [CodexBar](https://github.com/steipete/CodexBar)의 아이디어를 Tauri + React 데스크톱 셸과 공유 Rust 백엔드로 Windows에 맞게 포팅했습니다.

Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Win-CodexBar

[English](./README.md) | [简体中文](./README.zh-CN.md) | [繁體中文(臺灣)](./README.zh-TW.md) | [日本語](./README.ja-JP.md) | [한국어](./README.ko-KR.md) | [Español mexicano](./README.es-MX.md) | [Türkçe](./README.tr-TR.md)
[English](./README.md) | [简体中文](./README.zh-CN.md) | [繁體中文(臺灣)](./README.zh-TW.md) | [日本語](./README.ja-JP.md) | [한국어](./README.ko-KR.md) | [Español mexicano](./README.es-MX.md) | [Português (Brasil)](./README.pt-BR.md) | [Türkçe](./README.tr-TR.md)

Win-CodexBar is a Windows system-tray app for keeping AI coding-tool usage visible without opening a dozen dashboards. It ports the spirit of [CodexBar](https://github.com/steipete/CodexBar) to a Tauri + React desktop shell backed by shared Rust provider logic.

Expand Down Expand Up @@ -133,6 +133,7 @@ The UI and contributor reporting currently support:
- 日本語
- 한국어
- Español mexicano
- Português (Brasil)
- Türkçe

## Build From Source
Expand Down
207 changes: 207 additions & 0 deletions README.pt-BR.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
# Win-CodexBar

[English](./README.md) | [简体中文](./README.zh-CN.md) | [繁體中文(臺灣)](./README.zh-TW.md) | [日本語](./README.ja-JP.md) | [한국어](./README.ko-KR.md) | [Español mexicano](./README.es-MX.md) | [Português (Brasil)](./README.pt-BR.md) | [Türkçe](./README.tr-TR.md)

O Win-CodexBar é um aplicativo para a bandeja do sistema do Windows que mantém visível o uso das suas ferramentas de programação com IA, sem precisar abrir vários painéis. Ele traz a proposta do [CodexBar](https://github.com/steipete/CodexBar) para uma aplicação desktop em Tauri + React, apoiada por uma lógica compartilhada de provedores escrita em Rust.

<table>
<tr>
<td width="36%" align="center">
<img src="docs/images/tray-panel.png" alt="Painel da bandeja do Win-CodexBar mostrando cartões de uso dos provedores"/>
</td>
<td width="64%" align="center">
<img src="docs/images/settings-providers.png" alt="Página de configurações de provedores do Win-CodexBar"/>
</td>
</tr>
</table>

## Destaques

- **56 provedores**, incluindo Codex, Claude, Copilot, OpenRouter, Cursor, Gemini, DeepSeek, MiniMax, Kiro, Antigravity, Groq, Qoder, Sakana AI, CrossModel e muitos outros.
- **Fluxo centrado na bandeja**, com uma grade compacta de provedores, cartões de uso, ação de atualização, atalho para as configurações e controle para sair.
- **Configurações por provedor** para selecionar fontes de dados, credenciais, importação de cookies, contas de token, chaves de API, regiões e preferências de exibição na bandeja.
- **Proteção de credenciais no Windows** para chaves de API, cookies manuais e contas de token gerenciados pelo aplicativo, usando DPAPI no escopo do usuário quando disponível.
- **Importação de cookies do navegador** para Chrome, Edge, Brave e Firefox, ativada individualmente para cada provedor.
- **CLI local instalada** para automatizar consultas de uso, custos, configurações, diagnósticos e integrações via loopback.
- **Versões instalável e portátil**, com inicialização do runtime do WebView2 e do runtime do VC++, além de arquivos de verificação SHA-256.

## Instalação

Instale com o Gerenciador de Pacotes do Windows:

```powershell
winget install Finesssee.Win-CodexBar
```

Ou baixe a versão mais recente do instalador ou do executável portátil em [GitHub Releases](https://github.com/nesszer/Win-CodexBar/releases).

- Instalador: `CodexBar-<version>-Setup.exe`
- Portátil: `CodexBar-<version>-portable.exe`
- Checksums: cada versão inclui arquivos `.sha256`

A distribuição pelo Winget foi aprovada no [microsoft/winget-pkgs](https://github.com/microsoft/winget-pkgs/tree/master/manifests/f/Finesssee/Win-CodexBar). Novas versões podem demorar um pouco para aparecer, pois cada atualização no Winget é vinculada a uma URL de versão e a um hash específico do instalador.

## Assinatura de código

> **Assinatura de código:** o SignPath.io está integrado ao fluxo de lançamento do GitHub Actions, mas a assinatura em produção permanece bloqueada até a emissão do certificado Release 2026 e a validação da política `release-signing`. Consulte [docs/CODE_SIGNING.md](docs/CODE_SIGNING.md) para conhecer a política de assinatura.
> A versão v0.60.3 é imutável e não está assinada; verifique os arquivos SHA-256. A primeira versão assinada será a próxima versão normal após a integração com o SignPath.

## Primeira execução

1. Inicie o **CodexBar** pelo menu Iniciar ou pelo executável portátil.
2. Clique no ícone da bandeja para abrir o painel de uso.
3. Abra **Configurações -> Provedores**.
4. Ative os provedores que você utiliza.
5. Adicione o tipo de credencial correspondente: login OAuth/dispositivo, chave de API, cookies do navegador, login na CLI local ou conta de token.

Para o Claude, cookies do navegador/sessionKey são recomendados porque correspondem ao uso exibido na página de configurações do Claude. OAuth e CLI continuam disponíveis como alternativas. Para provedores baseados em CLI, como Codex e Gemini, primeiro faça login pela CLI do provedor.

## Versão mais recente

A **v0.33.2** corrige o fechamento do painel da bandeja para que ele seja fechado ao perder o foco ou ao pressionar Escape, sem reabrir imediatamente pelo mesmo clique no ícone da bandeja.

Consulte o histórico completo em [CHANGELOG.md](CHANGELOG.md).

## Provedores compatíveis

<details>
<summary>Matriz de provedores</summary>

| Provedor | Autenticação | Dados monitorados |
|---|---|---|
| Codex | OAuth / CLI | Sessão, semanal, créditos |
| Claude | Cookies / alternativa OAuth / alternativa CLI | Sessão (5h), semanal |
| Cursor | Cookies | Plano, uso, cobrança |
| Factory | Cookies | Uso |
| Gemini | OAuth do gcloud | Cota |
| Copilot | Fluxo de dispositivo do GitHub / CLI gh / token legado | Uso do plano, Chat |
| Antigravity | LSP local | Uso, cotas por modelo |
| z.ai | Token de API | Cota |
| MiniMax | API / Cookies | Uso, resumo de cobrança |
| Kiro | Cookies / CLI | Créditos mensais, excedentes |
| Vertex AI | OAuth do gcloud | Custo |
| v0 | Chave de API | Cota de cobrança, limites de requisição da API, saldo sob demanda |
| Augment | Cookies | Créditos |
| OpenCode | Configuração local | Uso |
| Kimi | Cookies | Limite de 5h, semanal |
| Kimi K2 | Chave de API | Créditos |
| Amp | Cookies | Uso |
| Warp | Configuração local | Uso |
| Ollama | Cookies / Chave de API | Uso, modelos na nuvem, janelas de ritmo |
| Azure OpenAI | Chave de API | Implantação |
| T3 Chat | Cookies / cURL | Base, excedentes |
| TypeSafe | Cookies do navegador / cabeçalho Cookie manual | Gastos do ciclo de cobrança, saldo, créditos a expirar |
| OpenRouter | Chave de API | Créditos |
| JetBrains AI | Configuração local | Uso |
| Alibaba | Cookies | Uso |
| Alibaba Token Plan | Cookies | Créditos do plano de tokens, data de renovação |
| NanoGPT | Chave de API | Créditos |
| Infini | Chave de API | Sessão, semanal, cota |
| Perplexity | Cookies | Créditos, plano |
| Abacus AI | Cookies | Créditos |
| Mistral | Cookies | Cobrança, uso |
| OpenCode Go | Cookies | Uso, saldo Zen |
| Kilo | Chave de API / CLI | Uso |
| Codebuff | Chave de API / Configuração local | Créditos, semanal |
| DeepSeek | Chave de API | Saldo, resumos de uso, custo |
| Windsurf | Cache local | Diário, semanal |
| Manus | Cookies | Créditos, créditos de atualização |
| Xiaomi MiMo | Cookies | Saldo, plano de tokens |
| Doubao | Chave de API | Limites de requisição |
| Command Code | Cookies | Créditos mensais, créditos comprados |
| Crof | Chave de API | Créditos, cota de requisições |
| StepFun | Token Oasis | 5h, semanal, atualização de token |
| Venice | Chave de API | Saldo em USD / DIEM |
| OpenAI | API Admin / Chave de API | Uso, requisições, custo por projeto, saldo de créditos |
| Grok | Cookies / auth.json | Cobrança |
| Helmcode (também NaN Builders) | Cookies do navegador / cabeçalho Cookie manual | Cotas de tokens por modelo, janelas de renovação, saldo pré-pago do Helmcode |
| Replicate | Cookies / contas de token | Gastos mensais, saldo de créditos |
| ElevenLabs | Chave de API | Créditos da assinatura, slots de voz |
| Deepgram | Chave de API | Uso do projeto |
| Groq | Chave de API | Métricas corporativas |
| LLM Proxy | Chave de API | Estatísticas de cota |

</details>

## Idiomas disponíveis

A interface e os relatórios para colaboradores estão disponíveis atualmente em:

- English
- 简体中文
- 繁體中文(臺灣)
- 日本語
- 한국어
- Español mexicano
- Português (Brasil)
- Türkçe

## Compilação a partir do código-fonte

```powershell
# Pré-requisitos: Node.js + pnpm. Rust e MinGW são instalados pelo script quando necessário.
git clone https://github.com/nesszer/Win-CodexBar.git
cd Win-CodexBar
.\scripts\dev.ps1
```

Opções úteis para desenvolvimento:

```powershell
.\scripts\dev.ps1 -Release # compilação otimizada
.\scripts\dev.ps1 -SkipBuild # reinicia a última compilação
```

Exemplos da CLI:

```bash
codexbar-cli --help
codexbar-cli diagnose --pretty
codexbar-cli usage -p claude
codexbar-cli usage -p all
codexbar-cli cost -p codex
```

As compilações do instalador incluem `codexbar.exe` como aplicativo da bandeja e `codexbar-cli.exe` como CLI de console. Os atalhos do menu Iniciar executam o aplicativo desktop; os comandos do terminal usam `codexbar-cli.exe`. O `codexbar-desktop.exe` ainda é instalado como um alias de compatibilidade para atalhos antigos e entradas de inicialização automática.

## Compilações de lançamento

Para criar versões locais no Windows, use o gerador de versões com cache:

```powershell
.\scripts\windows-release-build.ps1 -Ref v0.33.2 -SmokeInstall
```

O script compila o binário de lançamento real do Tauri e a CLI de console, verifica as dependências assinadas do instalador, empacota com o Inno Setup, gera os artefatos instalável e portátil, cria os arquivos SHA-256 correspondentes e pode executar um teste rápido de instalação e desinstalação silenciosas.

Mais informações sobre a automação de versões estão em [docs/release/ci-cd.md](docs/release/ci-cd.md).

## Privacidade

- **Processamento local por padrão**: os dados dos provedores são lidos de caminhos locais conhecidos ou das APIs que você configurar.
- **Cookies opcionais**: a extração de cookies do navegador só é executada para os provedores ativados por você.
- **Segredos protegidos**: chaves de API, cookies manuais e contas de token utilizam a camada de arquivo seguro; no Windows, ela usa DPAPI no escopo do usuário quando disponível.
- **Diagnósticos seguros**: os diagnósticos mostram apenas metadados de provedor, fonte e status, nunca cookies, chaves de API, bearer tokens ou valores OAuth brutos.
- **Atualizações verificadas**: downloads do instalador exigem um resumo SHA-256 do GitHub e são verificados novamente imediatamente antes da aplicação.

## Documentação

| Tópico | Link |
|---|---|
| Compilação a partir do código-fonte | [docs/BUILDING.md](docs/BUILDING.md) |
| Configuração do WSL e dicas de autenticação | [docs/WSL.md](docs/WSL.md) |
| Detalhes dos cookies do navegador | [docs/COOKIES.md](docs/COOKIES.md) |

## Integrações locais

- [AI Usage Limits](https://github.com/lenadweb/stream-deck-ai-limits) — integração com o Elgato Stream Deck que utiliza o painel/API local de `codexbar serve` para exibir métricas de provedor, conta, cota ou payload.
- [AI Monitor](https://github.com/tobymarks/esp32-ai-monitor) — monitor de mesa com ESP32 (Cheap Yellow Display) e aplicativo complementar para Windows (beta), que chama a CLI instalada (`codexbar-cli usage -p <provider> --json`) e transmite os limites de Claude, Codex, Copilot, Cursor, Gemini ou Antigravity para o monitor por uma conexão serial USB.

## Créditos

- Aplicativo original para macOS: [steipete/CodexBar](https://github.com/steipete/CodexBar), de Peter Steinberger
- Inspirado no [ccusage](https://github.com/ryoppippi/ccusage) para o acompanhamento de custos

## Licença

MIT, a mesma licença do CodexBar original.
2 changes: 1 addition & 1 deletion README.tr-TR.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Win-CodexBar

[English](./README.md) | [简体中文](./README.zh-CN.md) | [繁體中文(臺灣)](./README.zh-TW.md) | [日本語](./README.ja-JP.md) | [한국어](./README.ko-KR.md) | [Español mexicano](./README.es-MX.md) | [Türkçe](./README.tr-TR.md)
[English](./README.md) | [简体中文](./README.zh-CN.md) | [繁體中文(臺灣)](./README.zh-TW.md) | [日本語](./README.ja-JP.md) | [한국어](./README.ko-KR.md) | [Español mexicano](./README.es-MX.md) | [Português (Brasil)](./README.pt-BR.md) | [Türkçe](./README.tr-TR.md)

Win-CodexBar, bir düzine pano açmadan yapay zekâ kodlama araçlarının kullanımını görebilmenizi sağlayan bir Windows sistem tepsisi uygulamasıdır. [CodexBar](https://github.com/steipete/CodexBar) ruhunu, ortak Rust sağlayıcı mantığıyla desteklenen Tauri + React masaüstü kabuğuna taşır.

Expand Down
2 changes: 1 addition & 1 deletion README.zh-CN.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Win-CodexBar

[English](./README.md) | [简体中文](./README.zh-CN.md) | [繁體中文(臺灣)](./README.zh-TW.md) | [日本語](./README.ja-JP.md) | [한국어](./README.ko-KR.md) | [Español mexicano](./README.es-MX.md) | [Türkçe](./README.tr-TR.md)
[English](./README.md) | [简体中文](./README.zh-CN.md) | [繁體中文(臺灣)](./README.zh-TW.md) | [日本語](./README.ja-JP.md) | [한국어](./README.ko-KR.md) | [Español mexicano](./README.es-MX.md) | [Português (Brasil)](./README.pt-BR.md) | [Türkçe](./README.tr-TR.md)

[CodexBar](https://github.com/steipete/CodexBar) 的 Windows 移植版 —— 一个系统托盘应用,让你随时掌握各个 AI 编程工具的用量额度。

Expand Down
2 changes: 1 addition & 1 deletion README.zh-TW.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Win-CodexBar

[English](./README.md) | [简体中文](./README.zh-CN.md) | [繁體中文(臺灣)](./README.zh-TW.md) | [日本語](./README.ja-JP.md) | [한국어](./README.ko-KR.md) | [Español mexicano](./README.es-MX.md) | [Türkçe](./README.tr-TR.md)
[English](./README.md) | [简体中文](./README.zh-CN.md) | [繁體中文(臺灣)](./README.zh-TW.md) | [日本語](./README.ja-JP.md) | [한국어](./README.ko-KR.md) | [Español mexicano](./README.es-MX.md) | [Português (Brasil)](./README.pt-BR.md) | [Türkçe](./README.tr-TR.md)

[CodexBar](https://github.com/steipete/CodexBar) 的 Windows 移植版 —— 一個系統系統匣應用,讓你隨時掌握各個 AI 程式設計工具的用量額度。

Expand Down
21 changes: 21 additions & 0 deletions apps/desktop-tauri/src-tauri/src/commands/locale_cmd.rs
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,17 @@ mod locale_tests {
assert_eq!(bundle.entries.len(), locale::LocaleKey::ALL.len());
}

#[test]
fn locale_strings_roundtrip_brazilian_portuguese() {
let bundle = locale_strings_for(Language::PortugueseBrazil);
assert_eq!(bundle.language, "portuguesebrazil");
assert_eq!(
bundle.entries.get("TabGeneral").map(String::as_str),
Some("Geral")
);
assert_eq!(bundle.entries.len(), locale::LocaleKey::ALL.len());
}

#[test]
fn locale_strings_contains_every_variant() {
let bundle = locale_strings_for(Language::English);
Expand All @@ -190,6 +201,7 @@ mod locale_tests {
"japanese",
"korean",
"spanish",
"portuguesebrazil",
"russian",
"turkish"
]
Expand All @@ -203,6 +215,7 @@ mod locale_tests {
"日本語",
"한국어",
"Español",
"Português (Brasil)",
"Русский",
"Türkçe"
]
Expand Down Expand Up @@ -287,6 +300,14 @@ mod locale_tests {
parse_locale_language("español"),
Some(Language::Spanish)
));
assert!(matches!(
parse_locale_language("pt-BR"),
Some(Language::PortugueseBrazil)
));
assert!(matches!(
parse_locale_language("Português (Brasil)"),
Some(Language::PortugueseBrazil)
));
assert!(matches!(
parse_locale_language("tr-TR"),
Some(Language::Turkish)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ function languageLocale(language: Language): string {
japanese: "ja-JP",
korean: "ko-KR",
spanish: "es-MX",
portuguesebrazil: "pt-BR",
russian: "ru-RU",
turkish: "tr-TR",
}[language];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ const FALLBACK_LANGUAGE_OPTIONS: LanguageOption[] = [
{ value: "japanese", display: "日本語" },
{ value: "korean", display: "한국어" },
{ value: "spanish", display: "Español" },
{ value: "portuguesebrazil", display: "Português (Brasil)" },
{ value: "russian", display: "Русский" },
{ value: "turkish", display: "Türkçe" },
];
Expand Down
2 changes: 2 additions & 0 deletions apps/desktop-tauri/src/types/bridge.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ describe("Language type", () => {
const langRu: Language = "russian";
expect(langRu).toBe("russian");
const langTr: Language = "turkish";
const langPtBr: Language = "portuguesebrazil";
expect(langTr).toBe("turkish");
expect(langPtBr).toBe("portuguesebrazil");
});

it("allows 'spanish' in LocaleStrings payload", () => {
Expand Down
1 change: 1 addition & 0 deletions apps/desktop-tauri/src/types/bridge.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ export type Language =
| "japanese"
| "korean"
| "spanish"
| "portuguesebrazil"
| "russian"
| "turkish";

Expand Down
Loading