Skip to content

Commit 518c818

Browse files
authored
Merge pull request #563 from AutoMaker-Org/v0.12.0rc
V0.12.0rc
2 parents 03516ac + 01652d0 commit 518c818

257 files changed

Lines changed: 21512 additions & 5648 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/actions/setup-project/action.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ runs:
4141
# Use npm install instead of npm ci to correctly resolve platform-specific
4242
# optional dependencies (e.g., @tailwindcss/oxide, lightningcss binaries)
4343
# Skip scripts to avoid electron-builder install-app-deps which uses too much memory
44-
run: npm install --ignore-scripts
44+
# Use --force to allow platform-specific dev dependencies like dmg-license on non-darwin platforms
45+
run: npm install --ignore-scripts --force
4546

4647
- name: Install Linux native bindings
4748
shell: bash

.github/workflows/format-check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
cache-dependency-path: package-lock.json
2626

2727
- name: Install dependencies
28-
run: npm install --ignore-scripts
28+
run: npm install --ignore-scripts --force
2929

3030
- name: Check formatting
3131
run: npm run format:check

.github/workflows/release.yml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,11 @@ jobs:
3535
with:
3636
check-lockfile: 'true'
3737

38+
- name: Install RPM build tools (Linux)
39+
if: matrix.os == 'ubuntu-latest'
40+
shell: bash
41+
run: sudo apt-get update && sudo apt-get install -y rpm
42+
3843
- name: Build Electron app (macOS)
3944
if: matrix.os == 'macos-latest'
4045
shell: bash
@@ -73,7 +78,7 @@ jobs:
7378
uses: actions/upload-artifact@v4
7479
with:
7580
name: linux-builds
76-
path: apps/ui/release/*.{AppImage,deb}
81+
path: apps/ui/release/*.{AppImage,deb,rpm}
7782
retention-days: 30
7883

7984
upload:
@@ -104,8 +109,8 @@ jobs:
104109
uses: softprops/action-gh-release@v2
105110
with:
106111
files: |
107-
artifacts/macos-builds/*
108-
artifacts/windows-builds/*
109-
artifacts/linux-builds/*
112+
artifacts/macos-builds/*.{dmg,zip,blockmap}
113+
artifacts/windows-builds/*.{exe,blockmap}
114+
artifacts/linux-builds/*.{AppImage,deb,rpm,blockmap}
110115
env:
111116
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

CLAUDE.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,10 @@ Use `resolveModelString()` from `@automaker/model-resolver` to convert model ali
166166
## Environment Variables
167167

168168
- `ANTHROPIC_API_KEY` - Anthropic API key (or use Claude Code CLI auth)
169+
- `HOST` - Host to bind server to (default: 0.0.0.0)
170+
- `HOSTNAME` - Hostname for user-facing URLs (default: localhost)
169171
- `PORT` - Server port (default: 3008)
170172
- `DATA_DIR` - Data storage directory (default: ./data)
171173
- `ALLOWED_ROOT_DIRECTORY` - Restrict file operations to specific directory
172174
- `AUTOMAKER_MOCK_AGENT=true` - Enable mock agent mode for CI testing
175+
- `VITE_HOSTNAME` - Hostname for frontend API URLs (default: localhost)

README.md

Lines changed: 83 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
- [Quick Start](#quick-start)
2929
- [How to Run](#how-to-run)
3030
- [Development Mode](#development-mode)
31+
- [Interactive TUI Launcher](#interactive-tui-launcher-recommended-for-new-users)
3132
- [Building for Production](#building-for-production)
3233
- [Testing](#testing)
3334
- [Linting](#linting)
@@ -101,11 +102,9 @@ In the Discord, you can:
101102

102103
### Prerequisites
103104

104-
- **Node.js 18+** (tested with Node.js 22)
105+
- **Node.js 22+** (required: >=22.0.0 <23.0.0)
105106
- **npm** (comes with Node.js)
106-
- **Authentication** (choose one):
107-
- **[Claude Code CLI](https://code.claude.com/docs/en/overview)** (recommended) - Install and authenticate, credentials used automatically
108-
- **Anthropic API Key** - Direct API key for Claude Agent SDK ([get one here](https://console.anthropic.com/))
107+
- **[Claude Code CLI](https://code.claude.com/docs/en/overview)** - Install and authenticate with your Anthropic subscription. Automaker integrates with your authenticated Claude Code CLI to access Claude models.
109108

110109
### Quick Start
111110

@@ -117,30 +116,14 @@ cd automaker
117116
# 2. Install dependencies
118117
npm install
119118

120-
# 3. Build shared packages (can be skipped - npm run dev does it automatically)
121-
npm run build:packages
122-
123-
# 4. Start Automaker
119+
# 3. Start Automaker
124120
npm run dev
125121
# Choose between:
126122
# 1. Web Application (browser at localhost:3007)
127123
# 2. Desktop Application (Electron - recommended)
128124
```
129125

130-
**Authentication Setup:** On first run, Automaker will automatically show a setup wizard where you can configure authentication. You can choose to:
131-
132-
- Use **Claude Code CLI** (recommended) - Automaker will detect your CLI credentials automatically
133-
- Enter an **API key** directly in the wizard
134-
135-
If you prefer to set up authentication before running (e.g., for headless deployments or CI/CD), you can set it manually:
136-
137-
```bash
138-
# Option A: Environment variable
139-
export ANTHROPIC_API_KEY="sk-ant-..."
140-
141-
# Option B: Create .env file in project root
142-
echo "ANTHROPIC_API_KEY=sk-ant-..." > .env
143-
```
126+
**Authentication:** Automaker integrates with your authenticated Claude Code CLI. Make sure you have [installed and authenticated](https://code.claude.com/docs/en/quickstart) the Claude Code CLI before running Automaker. Your CLI credentials will be detected automatically.
144127

145128
**For Development:** `npm run dev` starts the development server with Vite live reload and hot module replacement for fast refresh and instant updates as you make changes.
146129

@@ -179,6 +162,40 @@ npm run dev:electron:wsl:gpu
179162
npm run dev:web
180163
```
181164

165+
### Interactive TUI Launcher (Recommended for New Users)
166+
167+
For a user-friendly interactive menu, use the built-in TUI launcher script:
168+
169+
```bash
170+
# Show interactive menu with all launch options
171+
./start-automaker.sh
172+
173+
# Or launch directly without menu
174+
./start-automaker.sh web # Web browser
175+
./start-automaker.sh electron # Desktop app
176+
./start-automaker.sh electron-debug # Desktop + DevTools
177+
178+
# Additional options
179+
./start-automaker.sh --help # Show all available options
180+
./start-automaker.sh --version # Show version information
181+
./start-automaker.sh --check-deps # Verify project dependencies
182+
./start-automaker.sh --no-colors # Disable colored output
183+
./start-automaker.sh --no-history # Don't remember last choice
184+
```
185+
186+
**Features:**
187+
188+
- 🎨 Beautiful terminal UI with gradient colors and ASCII art
189+
- ⌨️ Interactive menu (press 1-3 to select, Q to exit)
190+
- 💾 Remembers your last choice
191+
- ✅ Pre-flight checks (validates Node.js, npm, dependencies)
192+
- 📏 Responsive layout (adapts to terminal size)
193+
- ⏱️ 30-second timeout for hands-free selection
194+
- 🌐 Cross-shell compatible (bash/zsh)
195+
196+
**History File:**
197+
Your last selected mode is saved in `~/.automaker_launcher_history` for quick re-runs.
198+
182199
### Building for Production
183200

184201
#### Web Application
@@ -197,11 +214,30 @@ npm run build:electron
197214
# Platform-specific builds
198215
npm run build:electron:mac # macOS (DMG + ZIP, x64 + arm64)
199216
npm run build:electron:win # Windows (NSIS installer, x64)
200-
npm run build:electron:linux # Linux (AppImage + DEB, x64)
217+
npm run build:electron:linux # Linux (AppImage + DEB + RPM, x64)
201218

202219
# Output directory: apps/ui/release/
203220
```
204221

222+
**Linux Distribution Packages:**
223+
224+
- **AppImage**: Universal format, works on any Linux distribution
225+
- **DEB**: Ubuntu, Debian, Linux Mint, Pop!\_OS
226+
- **RPM**: Fedora, RHEL, Rocky Linux, AlmaLinux, openSUSE
227+
228+
**Installing on Fedora/RHEL:**
229+
230+
```bash
231+
# Download the RPM package
232+
wget https://github.com/AutoMaker-Org/automaker/releases/latest/download/Automaker-<version>-x86_64.rpm
233+
234+
# Install with dnf (Fedora)
235+
sudo dnf install ./Automaker-<version>-x86_64.rpm
236+
237+
# Or with yum (RHEL/CentOS)
238+
sudo yum localinstall ./Automaker-<version>-x86_64.rpm
239+
```
240+
205241
#### Docker Deployment
206242

207243
Docker provides the most secure way to run Automaker by isolating it from your host filesystem.
@@ -220,16 +256,9 @@ docker-compose logs -f
220256
docker-compose down
221257
```
222258

223-
##### Configuration
224-
225-
Create a `.env` file in the project root if using API key authentication:
226-
227-
```bash
228-
# Optional: Anthropic API key (not needed if using Claude CLI authentication)
229-
ANTHROPIC_API_KEY=sk-ant-...
230-
```
259+
##### Authentication
231260

232-
**Note:** Most users authenticate via Claude CLI instead of API keys. See [Claude CLI Authentication](#claude-cli-authentication-optional) below.
261+
Automaker integrates with your authenticated Claude Code CLI. To use CLI authentication in Docker, mount your Claude CLI config directory (see [Claude CLI Authentication](#claude-cli-authentication) below).
233262

234263
##### Working with Projects (Host Directory Access)
235264

@@ -243,9 +272,9 @@ services:
243272
- /path/to/your/project:/projects/your-project
244273
```
245274
246-
##### Claude CLI Authentication (Optional)
275+
##### Claude CLI Authentication
247276
248-
To use Claude Code CLI authentication instead of an API key, mount your Claude CLI config directory:
277+
Mount your Claude CLI config directory to use your authenticated CLI credentials:
249278
250279
```yaml
251280
services:
@@ -343,10 +372,6 @@ npm run lint
343372

344373
### Environment Configuration
345374

346-
#### Authentication (if not using Claude Code CLI)
347-
348-
- `ANTHROPIC_API_KEY` - Your Anthropic API key for Claude Agent SDK (not needed if using Claude Code CLI)
349-
350375
#### Optional - Server
351376

352377
- `PORT` - Server port (default: 3008)
@@ -357,49 +382,22 @@ npm run lint
357382

358383
- `AUTOMAKER_API_KEY` - Optional API authentication for the server
359384
- `ALLOWED_ROOT_DIRECTORY` - Restrict file operations to specific directory
360-
- `CORS_ORIGIN` - CORS policy (default: \*)
385+
- `CORS_ORIGIN` - CORS allowed origins (comma-separated list; defaults to localhost only)
361386

362387
#### Optional - Development
363388

364389
- `VITE_SKIP_ELECTRON` - Skip Electron in dev mode
365390
- `OPEN_DEVTOOLS` - Auto-open DevTools in Electron
391+
- `AUTOMAKER_SKIP_SANDBOX_WARNING` - Skip sandbox warning dialog (useful for dev/CI)
366392

367393
### Authentication Setup
368394

369-
#### Option 1: Claude Code CLI (Recommended)
395+
Automaker integrates with your authenticated Claude Code CLI and uses your Anthropic subscription.
370396

371397
Install and authenticate the Claude Code CLI following the [official quickstart guide](https://code.claude.com/docs/en/quickstart).
372398

373399
Once authenticated, Automaker will automatically detect and use your CLI credentials. No additional configuration needed!
374400

375-
#### Option 2: Direct API Key
376-
377-
If you prefer not to use the CLI, you can provide an Anthropic API key directly using one of these methods:
378-
379-
##### 2a. Shell Configuration
380-
381-
Add to your `~/.bashrc` or `~/.zshrc`:
382-
383-
```bash
384-
export ANTHROPIC_API_KEY="sk-ant-..."
385-
```
386-
387-
Then restart your terminal or run `source ~/.bashrc` (or `source ~/.zshrc`).
388-
389-
##### 2b. .env File
390-
391-
Create a `.env` file in the project root (gitignored):
392-
393-
```bash
394-
ANTHROPIC_API_KEY=sk-ant-...
395-
PORT=3008
396-
DATA_DIR=./data
397-
```
398-
399-
##### 2c. In-App Storage
400-
401-
The application can store your API key securely in the settings UI. The key is persisted in the `DATA_DIR` directory.
402-
403401
## Features
404402

405403
### Core Workflow
@@ -508,20 +506,24 @@ Automaker provides several specialized views accessible via the sidebar or keybo
508506
| **Agent** | `A` | Interactive chat sessions with AI agents for exploratory work and questions |
509507
| **Spec** | `D` | Project specification editor with AI-powered generation and feature suggestions |
510508
| **Context** | `C` | Manage context files (markdown, images) that AI agents automatically reference |
511-
| **Profiles** | `M` | Create and manage AI agent profiles with custom prompts and configurations |
512509
| **Settings** | `S` | Configure themes, shortcuts, defaults, authentication, and more |
513510
| **Terminal** | `T` | Integrated terminal with tabs, splits, and persistent sessions |
514-
| **GitHub Issues** | - | Import and validate GitHub issues, convert to tasks |
511+
| **Graph** | `H` | Visualize feature dependencies with interactive graph visualization |
512+
| **Ideation** | `I` | Brainstorm and generate ideas with AI assistance |
513+
| **Memory** | `Y` | View and manage agent memory and conversation history |
514+
| **GitHub Issues** | `G` | Import and validate GitHub issues, convert to tasks |
515+
| **GitHub PRs** | `R` | View and manage GitHub pull requests |
515516
| **Running Agents** | - | View all active agents across projects with status and progress |
516517

517518
### Keyboard Navigation
518519

519520
All shortcuts are customizable in Settings. Default shortcuts:
520521

521-
- **Navigation:** `K` (Board), `A` (Agent), `D` (Spec), `C` (Context), `S` (Settings), `M` (Profiles), `T` (Terminal)
522+
- **Navigation:** `K` (Board), `A` (Agent), `D` (Spec), `C` (Context), `S` (Settings), `T` (Terminal), `H` (Graph), `I` (Ideation), `Y` (Memory), `G` (GitHub Issues), `R` (GitHub PRs)
522523
- **UI:** `` ` `` (Toggle sidebar)
523-
- **Actions:** `N` (New item in current view), `G` (Start next features), `O` (Open project), `P` (Project picker)
524+
- **Actions:** `N` (New item in current view), `O` (Open project), `P` (Project picker)
524525
- **Projects:** `Q`/`E` (Cycle previous/next project)
526+
- **Terminal:** `Alt+D` (Split right), `Alt+S` (Split down), `Alt+W` (Close), `Alt+T` (New tab)
525527

526528
## Architecture
527529

@@ -586,10 +588,16 @@ Stored in `{projectPath}/.automaker/`:
586588
│ ├── agent-output.md # AI agent output log
587589
│ └── images/ # Attached images
588590
├── context/ # Context files for AI agents
591+
├── worktrees/ # Git worktree metadata
592+
├── validations/ # GitHub issue validation results
593+
├── ideation/ # Brainstorming and analysis data
594+
│ └── analysis.json # Project structure analysis
595+
├── board/ # Board-related data
596+
├── images/ # Project-level images
589597
├── settings.json # Project-specific settings
590-
├── spec.md # Project specification
591-
├── analysis.json # Project structure analysis
592-
└── feature-suggestions.json # AI-generated suggestions
598+
├── app_spec.txt # Project specification (XML format)
599+
├── active-branches.json # Active git branches tracking
600+
└── execution-state.json # Auto-mode execution state
593601
```
594602

595603
#### Global Data
@@ -627,7 +635,6 @@ data/
627635

628636
- [Contributing Guide](./CONTRIBUTING.md) - How to contribute to Automaker
629637
- [Project Documentation](./docs/) - Architecture guides, patterns, and developer docs
630-
- [Docker Isolation Guide](./docs/docker-isolation.md) - Security-focused Docker deployment
631638
- [Shared Packages Guide](./docs/llm-shared-packages.md) - Using monorepo packages
632639

633640
### Community

apps/server/.env.example

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ CORS_ORIGIN=http://localhost:3007
4444
# OPTIONAL - Server
4545
# ============================================
4646

47+
# Host to bind the server to (default: 0.0.0.0)
48+
# Use 0.0.0.0 to listen on all interfaces (recommended for Docker/remote access)
49+
# Use 127.0.0.1 or localhost to restrict to local connections only
50+
HOST=0.0.0.0
51+
4752
# Port to run the server on
4853
PORT=3008
4954

@@ -63,6 +68,14 @@ TERMINAL_PASSWORD=
6368

6469
ENABLE_REQUEST_LOGGING=false
6570

71+
# ============================================
72+
# OPTIONAL - UI Behavior
73+
# ============================================
74+
75+
# Skip the sandbox warning dialog on startup (default: false)
76+
# Set to "true" to disable the warning entirely (useful for dev/CI environments)
77+
AUTOMAKER_SKIP_SANDBOX_WARNING=false
78+
6679
# ============================================
6780
# OPTIONAL - Debugging
6881
# ============================================

apps/server/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@automaker/server",
3-
"version": "0.11.0",
3+
"version": "0.12.0",
44
"description": "Backend server for Automaker - provides API for both web and Electron modes",
55
"author": "AutoMaker Team",
66
"license": "SEE LICENSE IN LICENSE",

0 commit comments

Comments
 (0)