Skip to content
Open
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
20 changes: 19 additions & 1 deletion bin/cc-web.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ program
.option('--cert <path>', 'path to SSL certificate file')
.option('--key <path>', 'path to SSL private key file')
.option('--dev', 'development mode with additional logging')
.option('--cwd <path>', 'working directory for Claude sessions (default: current directory)')
.option('--plan <type>', 'subscription plan (pro, max5, max20)', 'max20')
.option('--claude-alias <name>', 'display alias for Claude (default: env CLAUDE_ALIAS or "Claude")')
.option('--codex-alias <name>', 'display alias for Codex (default: env CODEX_ALIAS or "Codex")')
Expand Down Expand Up @@ -62,6 +63,22 @@ async function main() {
}
}

// Resolve and validate working directory if provided
let cwd = process.cwd();
if (options.cwd) {
const resolvedCwd = path.resolve(options.cwd);
const fs = require('fs');
if (!fs.existsSync(resolvedCwd)) {
console.error(`Error: Working directory does not exist: ${resolvedCwd}`);
process.exit(1);
}
if (!fs.statSync(resolvedCwd).isDirectory()) {
console.error(`Error: Path is not a directory: ${resolvedCwd}`);
process.exit(1);
}
cwd = resolvedCwd;
}

const serverOptions = {
port,
auth: authToken,
Expand All @@ -70,6 +87,7 @@ async function main() {
cert: options.cert,
key: options.key,
dev: options.dev,
cwd: cwd,
plan: options.plan,
// UI aliases for assistants
claudeAlias: options.claudeAlias || process.env.CLAUDE_ALIAS || 'Claude',
Expand All @@ -80,7 +98,7 @@ async function main() {

console.log('Starting Claude Code Web Interface...');
console.log(`Port: ${port}`);
console.log('Mode: Folder selection mode');
console.log(`Working directory: ${cwd}`);
console.log(`Plan: ${options.plan}`);
console.log(`Aliases: Claude → "${serverOptions.claudeAlias}", Codex → "${serverOptions.codexAlias}", Agent → "${serverOptions.agentAlias}"`);

Expand Down