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
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ repository = "https://github.com/jasonsuhari/gridbash"

[dependencies]
anyhow = "1.0"
base64 = "0.22"
clap = { version = "4.5", features = ["derive"] }
crossterm = { version = "0.29", features = ["event-stream"] }
directories = "6.0"
Expand Down
37 changes: 36 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -204,10 +204,36 @@ Typing goes to selected panes whenever multiple panes are selected. With zero or

Renamed pane headers replace the numeric prefix for the current session. Saving a blank name restores the default number.

Settings includes a General tab for local runtime display controls and an Auth tab for GridBash-wide Claude/Codex auth defaults.

Pane titles add a small quiet-output marker after roughly three seconds without output. The marker means a pane produced output and then went idle; it does not mean the process exited or completed its task.

The settings screen includes sample controls plus live color controls for the accent, focus, selected, quiet, and exited grid roles. Palette changes apply immediately for the current run.

## Auth Profiles

GridBash can launch Claude and Codex with isolated auth/config directories. It discovers profiles from:

```text
GRIDBASH_AUTH_HOME > CLAUDE_PROFILES_HOME > [auth].home > %USERPROFILE%\.claude-profiles
```

Claude profiles launch with `CLAUDE_CONFIG_DIR=<profile-dir>`. Codex profiles launch with `CODEX_HOME=<profile-dir>`.

Auth settings controls:

| Input | Action |
| --- | --- |
| Tab | Switch Settings tabs |
| Up / Down | Move through auth profiles |
| d | Set selected profile as the GridBash-wide default for its kind |
| n | Create a profile directory |
| l | Open the selected profile's login command |
| r | Refresh local account and usage status |
| Esc / q | Close settings |

Usage status is best-effort. GridBash reads local auth metadata, masks account emails, and uses short-timeout `curl.exe` requests only while the Auth settings view is refreshed.

## Profiles

Built-in profile keys:
Expand All @@ -221,7 +247,7 @@ GridBash resolves Windows `.exe` and `.cmd` shims before extensionless npm shims
Optional config file:

```text
%APPDATA%\GridBash\config.toml
%APPDATA%\GridBash\config\config.toml
```

Example:
Expand All @@ -230,10 +256,19 @@ Example:
[defaults]
profile = "powershell"

[auth]
home = "C:\\Users\\Jason\\.claude-profiles"
usage_status = true

[auth.defaults]
claude = "claude-1"
codex = "codex-2"

[profiles.review]
command = "codex"
args = ["--model", "gpt-5.5"]
title = "Codex Review"
agent_kind = "codex"
```

Then run:
Expand Down
10 changes: 10 additions & 0 deletions config.example.toml
Original file line number Diff line number Diff line change
@@ -1,15 +1,25 @@
[defaults]
profile = "git-bash"

[auth]
home = "C:\\Users\\Jason\\.claude-profiles"
usage_status = true

[auth.defaults]
claude = "claude-1"
codex = "codex-2"

[profiles.codex-fast]
command = "codex"
args = ["--model", "gpt-5.4-mini"]
title = "Codex Fast"
agent_kind = "codex"

[profiles.claude-review]
command = "claude"
args = []
title = "Claude Review"
agent_kind = "claude"

[profiles.git-worktree]
command = "bash"
Expand Down
34 changes: 34 additions & 0 deletions docs/devlogs/2026-07-07-integrate-native-auth-manager.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Integrate native auth manager

Date: 2026-07-07
Release target: unreleased

## Summary

- Integrated the native Claude/Codex auth profile manager with current `main`.
- Preserved the existing live pane usage labels while making them prefer the auth directory applied to a pane.

## What Changed

- Added `[auth]` config with per-kind defaults and local auth profile discovery.
- Added an Auth tab to Settings for browsing profiles, creating profile directories, setting defaults, refreshing status, and launching login.
- Tagged built-in Claude/Codex profiles with `agent_kind` so auth defaults can set `CLAUDE_CONFIG_DIR` or `CODEX_HOME` at launch.
- Pane titles now include launch profile and auth profile metadata while keeping current usage labels.
- Usage monitoring now follows the applied native auth directory before falling back to existing profile/default auth lookup.

## Why It Matters

- Multiple Claude and Codex accounts can run through GridBash without manually exporting auth environment variables.
- Usage labels stay accurate for panes launched with native auth defaults.
- The Settings/Profile flow from current `main` remains the base behavior.

## Validation

- Ran `cargo fmt`.
- Ran `npm test` with 55 passing tests and 1 ignored interactive ConPTY smoke test after rebasing onto the latest `origin/main`.

## Release Notes

- Added native Claude/Codex auth profile management in Settings.
- Added GridBash-wide auth defaults for built-in and kind-tagged custom agent profiles.
- Pane headers now show launch profile/auth profile metadata alongside existing usage labels.
Loading
Loading