Skip to content
This repository was archived by the owner on Apr 19, 2026. It is now read-only.

Commit 1928d00

Browse files
isaachorowitzclaude
andcommitted
chore: set up CI release pipeline and clean up docs
- Add GitHub Actions workflow: builds, notarizes, and staples on every push to main (rolling "latest" pre-release) and on version tags (versioned release), both published to CodeGrid-Claude-Code-Terminal - Update README with clear download link and install instructions - Delete NOTARIZATION.md (process is now automated via CI) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 0bc8b72 commit 1928d00

3 files changed

Lines changed: 167 additions & 156 deletions

File tree

.github/workflows/release.yml

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
name: Build & Release
2+
3+
on:
4+
push:
5+
branches: [main]
6+
tags: ['v*']
7+
8+
jobs:
9+
build:
10+
runs-on: macos-latest
11+
permissions:
12+
contents: write
13+
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- name: Install Node.js
18+
uses: actions/setup-node@v4
19+
with:
20+
node-version: 22
21+
22+
- name: Install Rust
23+
uses: dtolnay/rust-toolchain@stable
24+
with:
25+
targets: aarch64-apple-darwin
26+
27+
- name: Install dependencies
28+
run: npm ci
29+
30+
- name: Import signing certificate
31+
env:
32+
CERTIFICATE_P12: ${{ secrets.APPLE_CERTIFICATE_P12 }}
33+
CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
34+
run: |
35+
echo "$CERTIFICATE_P12" | base64 --decode > certificate.p12
36+
security create-keychain -p "" build.keychain
37+
security default-keychain -s build.keychain
38+
security unlock-keychain -p "" build.keychain
39+
security import certificate.p12 -k build.keychain -P "$CERTIFICATE_PASSWORD" -T /usr/bin/codesign
40+
security set-key-partition-list -S apple-tool:,apple: -s -k "" build.keychain
41+
rm certificate.p12
42+
43+
- name: Build
44+
env:
45+
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
46+
run: npm run tauri build -- --target aarch64-apple-darwin
47+
48+
- name: Notarize
49+
env:
50+
APPLE_ID: ${{ secrets.APPLE_ID }}
51+
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
52+
APPLE_APP_PASSWORD: ${{ secrets.APPLE_APP_PASSWORD }}
53+
run: |
54+
DMG=src-tauri/target/aarch64-apple-darwin/release/bundle/dmg/CodeGrid_*.dmg
55+
xcrun notarytool submit $DMG \
56+
--apple-id "$APPLE_ID" \
57+
--team-id "$APPLE_TEAM_ID" \
58+
--password "$APPLE_APP_PASSWORD" \
59+
--wait
60+
xcrun stapler staple $DMG
61+
62+
- name: Get version
63+
id: version
64+
run: |
65+
VERSION=$(grep '^version' src-tauri/Cargo.toml | head -1 | sed 's/.*"\(.*\)".*/\1/')
66+
echo "version=$VERSION" >> $GITHUB_OUTPUT
67+
echo "dmg=src-tauri/target/aarch64-apple-darwin/release/bundle/dmg/CodeGrid_${VERSION}_aarch64.dmg" >> $GITHUB_OUTPUT
68+
69+
# On version tag: create a proper versioned release on the public repo
70+
- name: Create versioned release
71+
if: startsWith(github.ref, 'refs/tags/v')
72+
env:
73+
GH_TOKEN: ${{ secrets.PUBLIC_REPO_TOKEN }}
74+
run: |
75+
TAG=${GITHUB_REF#refs/tags/}
76+
NOTES=$(awk "/^## \[${TAG#v}\]/{found=1; next} found && /^## /{exit} found{print}" CHANGELOG.md)
77+
gh release create "$TAG" "${{ steps.version.outputs.dmg }}" \
78+
--repo isaachorowitz/CodeGrid-Claude-Code-Terminal \
79+
--title "CodeGrid $TAG" \
80+
--notes "$NOTES"
81+
82+
# On every main push: update the rolling "latest" pre-release
83+
- name: Update latest pre-release
84+
if: github.ref == 'refs/heads/main'
85+
env:
86+
GH_TOKEN: ${{ secrets.PUBLIC_REPO_TOKEN }}
87+
run: |
88+
gh release delete latest \
89+
--repo isaachorowitz/CodeGrid-Claude-Code-Terminal \
90+
--yes 2>/dev/null || true
91+
gh release create latest "${{ steps.version.outputs.dmg }}" \
92+
--repo isaachorowitz/CodeGrid-Claude-Code-Terminal \
93+
--title "CodeGrid (latest build)" \
94+
--notes "Automatically built from the latest commit on \`main\`. Signed and notarized." \
95+
--prerelease

NOTARIZATION.md

Lines changed: 0 additions & 110 deletions
This file was deleted.

README.md

Lines changed: 72 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,90 +1,120 @@
1-
# Code Grid — Terminal workspace manager
1+
# CodeGrid — Terminal workspace for AI coding agents
22

3-
A dense, information-rich terminal multiplexer designed for power users running multiple Claude Code sessions simultaneously.
3+
A dense, 2D canvas for running dozens of Claude Code sessions simultaneously. macOS.
44

5-
![Code Grid](https://img.shields.io/badge/CodeGrid-v0.1.0-ff8c00)
5+
![CodeGrid](https://img.shields.io/badge/CodeGrid-v0.1.0-ff8c00)
6+
![macOS](https://img.shields.io/badge/macOS-Apple_Silicon-000000)
67

7-
## What is Code Grid?
8+
## Download
89

9-
Code Grid is a **terminal workspace manager for AI coding agents**. Unlike traditional terminal multiplexers that use split panes or tabs, Code Grid provides a **free-form 2D grid** where you can tile 4, 9, 16+ terminal instances in any arrangement.
10+
**[→ Download the latest release](https://github.com/isaachorowitz/CodeGrid-Claude-Code-Terminal/releases/latest)**
11+
12+
Signed and notarized by Apple — double-click to install, no security warnings.
13+
14+
> Requires macOS 13+ on Apple Silicon (M1/M2/M3/M4).
15+
16+
---
17+
18+
## What is CodeGrid?
19+
20+
CodeGrid is a **terminal workspace manager for AI coding agents**. Unlike traditional terminal multiplexers that use split panes or tabs, CodeGrid provides a **free-form 2D grid** where you can tile 4, 9, 16+ terminal instances in any arrangement.
21+
22+
Built for people running Claude Code in parallel across multiple projects.
1023

1124
### Key Features
1225

13-
- **True 2D Grid Layout** — Drag, resize, and arrange terminal panes in any configuration. Not split panes, not tabs. A real grid.
14-
- **Dense Dark Aesthetic** — Dense, dark, orange accents. Monospace everything. No rounded corners. No wasted space.
26+
- **True 2D Grid Layout** — Drag, resize, and arrange terminal panes in any configuration. Not split panes, not tabs.
1527
- **Broadcast Mode** — Type once, send to all panes simultaneously. Run `/review` across 5 projects at once.
16-
- **Git Worktree Isolation** — Multiple agents on the same repo without conflicts. Auto-creates worktrees for concurrent sessions.
28+
- **Git Worktree Isolation** — Multiple agents on the same repo without conflicts. Auto-creates worktrees per session.
29+
- **Full Git Manager** — Stage files, commit, push/pull, create/switch branches — all without leaving the app.
30+
- **MCP Server Management** — Add, toggle, and remove Claude MCP servers from the sidebar.
31+
- **GitHub Integration** — Auth via device flow, search repos, clone in one click.
1732
- **Command Palette**`Cmd+K` for fuzzy-search across all actions, layouts, and sessions.
18-
- **Workspace System** — Save and restore collections of sessions with their grid layouts.
33+
- **Workspace System** — Save and restore named collections of sessions with their grid layouts.
1934
- **Keyboard-First Navigation**`Cmd+Arrow` to navigate, `Cmd+1-9` to jump, `Cmd+Enter` to maximize.
2035
- **Mac-Native Performance** — Built with Tauri v2 (~10MB), not Electron (~200MB).
2136

37+
---
38+
39+
## Keyboard Shortcuts
40+
41+
| Shortcut | Action |
42+
|----------|--------|
43+
| `Cmd+N` | New pane |
44+
| `Cmd+W` | Close focused pane |
45+
| `Cmd+Arrow` | Navigate between panes |
46+
| `Cmd+Shift+Arrow` | Swap pane positions |
47+
| `Cmd+Enter` | Maximize / restore pane |
48+
| `Cmd+K` | Command palette |
49+
| `Cmd+1-9` | Jump to pane by number |
50+
| `Cmd+B` | Toggle broadcast mode |
51+
| `Cmd+S` | Toggle sidebar |
52+
| `Cmd+Tab` | Cycle workspaces |
53+
| `Cmd+Shift+N` | New workspace |
54+
| `Cmd+,` | Settings |
55+
56+
## Layout Presets
57+
58+
- **1x1** — Single focused pane
59+
- **2x2** — Four equal quadrants
60+
- **3x3** — Nine panes (the dense grid look)
61+
- **1+2** — One large left, two stacked right
62+
- **1+3** — One large top, three small bottom
63+
64+
---
65+
66+
## License
67+
68+
14-day free trial, up to 9 panes. Licensed tier unlocks unlimited panes.
69+
70+
---
71+
2272
## Tech Stack
2373

2474
| Layer | Technology |
2575
|-------|-----------|
2676
| Desktop Shell | Tauri v2 (Rust) |
2777
| Frontend | React 19 + TypeScript |
2878
| Terminal | xterm.js 5 (WebGL) |
29-
| Grid | react-grid-layout |
3079
| State | Zustand 5 |
3180
| Styling | Tailwind CSS v4 |
3281
| PTY | portable-pty 0.8 |
3382
| Database | SQLite (rusqlite) |
3483

35-
## Prerequisites
84+
---
85+
86+
## Building from Source
87+
88+
### Prerequisites
3689

3790
```bash
38-
# Xcode Command Line Tools (macOS)
91+
# Xcode Command Line Tools
3992
xcode-select --install
4093

4194
# Rust
4295
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
4396

4497
# Node.js 22+
45-
fnm install 22 # or nvm install 22
98+
fnm install 22 # or: nvm install 22
4699

47100
# Claude Code
48101
npm install -g @anthropic-ai/claude-code
49102
```
50103

51-
## Development
104+
### Development
52105

53106
```bash
54-
# Install dependencies
55107
npm install
56-
57-
# Run in development mode
58108
npm run tauri dev
59-
60-
# Build for production
61-
npm run tauri build
62109
```
63110

64-
## Keyboard Shortcuts
65-
66-
| Shortcut | Action |
67-
|----------|--------|
68-
| `Cmd+N` | New pane |
69-
| `Cmd+W` | Close focused pane |
70-
| `Cmd+Arrow` | Navigate between panes |
71-
| `Cmd+Shift+Arrow` | Swap pane positions |
72-
| `Cmd+Enter` | Maximize / restore pane |
73-
| `Cmd+K` | Command palette |
74-
| `Cmd+1-9` | Jump to pane by number |
75-
| `Cmd+B` | Toggle broadcast mode |
76-
| `Cmd+S` | Toggle sidebar |
77-
| `Cmd+Tab` | Cycle workspaces |
78-
| `Cmd+Shift+N` | New workspace |
79-
| `Cmd+,` | Settings |
111+
### Production Build
80112

81-
## Layout Presets
113+
```bash
114+
npm run tauri build -- --target aarch64-apple-darwin
115+
```
82116

83-
- **1x1** — Single focused pane
84-
- **2x2** — Four equal quadrants
85-
- **3x3** — Nine panes (the dense grid look)
86-
- **1+2** — One large left, two stacked right
87-
- **1+3** — One large top, three small bottom
117+
---
88118

89119
## Architecture
90120

@@ -97,7 +127,3 @@ Tauri (Rust) Webview (React)
97127
├── Shell Detector ├── Command Palette
98128
└── Worktree Manager └── Keyboard Nav Layer
99129
```
100-
101-
## License
102-
103-
MIT

0 commit comments

Comments
 (0)