Minimal web GUI for AI coding agents by Ping.gg. Currently supports Claude and Codex agents, with more planned. Open source (MIT).
T3 Code is a frontend — the actual AI work happens through the underlying agents (Claude Code, Codex CLI). Privacy for those agents is configured separately via the claude-code/ and codex-cli/ sections of this repo.
env-exampleis the recommended environment configenv-annotated.mdexplains each setting
T3 Code has no traditional settings file. App preferences live in browser localStorage and the only privacy-relevant setting is a server-side environment variable.
Set the env var before launching T3 Code:
# Bash / Zsh
export T3CODE_TELEMETRY_ENABLED=false
# Or copy the env-example and source it
cp t3-code/env-example ~/.t3/.envFor the desktop app (Electron), set the env var in your shell profile (~/.bashrc, ~/.zshrc, etc.) so it applies on launch.
| Setting | Value | Status | Why |
|---|---|---|---|
T3CODE_TELEMETRY_ENABLED |
false |
Verified | Disables PostHog analytics (platform, arch, version, client type) |
That's it — T3 Code only has one privacy-relevant setting. Everything else in the GUI (theme, streaming, workspace mode, keybindings) has no telemetry or data-sharing impact.
With telemetry enabled (the default), T3 Code sends to PostHog:
- Platform (
process.platform), architecture (process.arch) - WSL distro name (if applicable)
- App version, client type (desktop-app or cli-web-client)
- A hashed user identifier (SHA-256 of Codex account ID, Claude user ID, or a random anonymous ID)
Setting T3CODE_TELEMETRY_ENABLED=false stops all of this.
These are configured in the app's settings panel and stored in browser localStorage. None affect telemetry or data sharing:
| Section | Settings |
|---|---|
| General | Theme, time format, diff wrapping, streaming, workspace mode, archive/delete confirmation, text generation model |
| Providers | Codex/Claude binary paths, enable/disable per provider, custom models |
| Advanced | Keybindings (~/.t3/keybindings.json) |
| About | Version info, diagnostics (OTEL endpoints, logs folder) |
There is no telemetry toggle in the GUI — the env var is the only opt-out mechanism.
| Tier | What to do |
|---|---|
| Recommended | Set T3CODE_TELEMETRY_ENABLED=false, configure the underlying agents separately via claude-code/ and codex-cli/ |
| Strict | Same as recommended — there are no additional settings to tighten beyond the telemetry toggle |
| Feature-max | Leave telemetry on if you want to support the project, but configure the underlying agents for privacy |
T3 Code is a GUI wrapper. The privacy profile of your actual AI interactions depends on the agent:
| Agent | Config location | Repo section |
|---|---|---|
| Claude Code | ~/.claude/settings.json |
claude-code/ |
| Codex CLI | ~/.codex/config.toml |
codex-cli/ |
Configure both the T3 Code telemetry AND the underlying agent telemetry for full coverage.
| File | Location | Purpose |
|---|---|---|
| App settings | Browser localStorage (t3code:app-settings:v1) |
Theme, streaming, workspace mode, etc. |
| Keybindings | ~/.t3/keybindings.json |
Custom keyboard shortcuts |
| Server state | ~/.t3/userdata/ (or T3CODE_HOME) |
Session data, SQLite |
| Telemetry ID | ~/.t3/telemetry/anonymous-id |
Random anonymous ID (created on first run) |
- Disabling T3 Code telemetry does not disable telemetry in the underlying agents (Claude Code, Codex CLI) — configure those separately.
- It does not stop model inference requests from reaching the configured provider.
- It does not guarantee zero data retention beyond what each provider documents for your account type.
- Local session data is stored in
~/.t3/userdata/— this is a local retention choice, not a vendor training concern.
See the full disclaimer in the project README.