diff --git a/Dockerfile.codex-automation b/Dockerfile.codex-automation
deleted file mode 100644
index 3f50ea8..0000000
--- a/Dockerfile.codex-automation
+++ /dev/null
@@ -1,28 +0,0 @@
-FROM node:22-alpine
-
-# Install system dependencies
-RUN apk add --no-cache \
- bash \
- git \
- curl \
- openssh-client \
- python3 \
- py3-pip
-
-# Install Codex CLI globally
-# Requires Node.js 22+ according to their documentation
-RUN npm install -g @openai/codex
-
-# Create workspace directory
-WORKDIR /workspace
-
-# Configure git (default values, will be overridden)
-RUN git config --global user.email "codex-automation@automation.com" && \
- git config --global user.name "Codex Code Automation" && \
- git config --global init.defaultBranch main
-
-# Set up environment
-ENV NODE_ENV=production
-
-# Default command
-CMD ["bash"]
\ No newline at end of file
diff --git a/README.md b/README.md
index 811e8b5..6bc6967 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,8 @@
-# Async Code Agent
+# Claude Code UI
-Use Claude Code / CodeX CLI to perform multiple tasks in parallel with a Codex-style UI.
+Use Claude Code to perform multiple tasks in parallel with a Claude Code-style UI.
-A code agent task management system that provides parallel execution of AI-powered coding tasks. Users can run multiple Claude Code agents simultaneously through a Codex-style web interface, with support for different agents for comparison and evaluation.
+A code agent task management system that provides parallel execution of Claude Code automation tasks. Users can run multiple Claude Code agents simultaneously through a web interface focused on Claude Code integration.

@@ -12,19 +12,18 @@ A code agent task management system that provides parallel execution of AI-power
## Key Features
-- đ¤ **Multi-Agent Support**: Run Claude Code and other AI agents in parallel
+- đ¤ **Claude Code Integration**: Run Claude Code automation tasks in parallel
- đ **Parallel Task Management**: Execute multiple coding tasks simultaneously
-- đ **Codex-Style Web UI**: Clean interface for managing agent tasks
-- đ **Agent Comparison**: Compare outputs from different AI models
+- đ **Clean Web UI**: Modern interface for managing Claude Code tasks
- đŗ **Containerized Execution**: Secure sandboxed environment for each task
- đ **Git Integration**: Automatic repository cloning, commits, and PR creation
-- **Selfhost**: Deploy you rown parallel code agent platform.
+- **Selfhost**: Deploy your own parallel code agent platform.
## Architecture
- **Frontend**: Next.js with TypeScript and TailwindCSS
- **Backend**: Python Flask API with Docker orchestration
-- **Agents**: Claude Code (Anthropic) with extensible support for other models
+- **Agent**: Claude Code (Anthropic)
- **Task Management**: Parallel execution system based on container
## Quick Start
@@ -72,10 +71,9 @@ See `db/README.md` for detailed database setup instructions.
1. **Setup GitHub Token**: Enter your GitHub token in the web interface
2. **Configure Repository**: Specify target repository and branch
-3. **Select Agent**: Choose your preferred AI agent (Claude Code, etc.)
-4. **Submit Tasks**: Start multiple coding tasks in parallel
-5. **Compare Results**: Review and compare outputs from different agents
-6. **Create PRs**: Generate pull requests from successful tasks
+3. **Submit Tasks**: Start multiple Claude Code tasks in parallel
+4. **Review Results**: Review outputs from Claude Code automation
+5. **Create PRs**: Generate pull requests from successful tasks
## Environment Variables
diff --git a/async-code-web/app/page.tsx b/async-code-web/app/page.tsx
index caa1910..bc7ec4e 100644
--- a/async-code-web/app/page.tsx
+++ b/async-code-web/app/page.tsx
@@ -22,7 +22,6 @@ import { ApiService } from "@/lib/api-service";
import { SupabaseService } from "@/lib/supabase-service";
import { Project, Task } from "@/types";
import { ClaudeIcon } from "@/components/icon/claude";
-import { OpenAIIcon } from "@/components/icon/openai";
import { toast } from "sonner";
interface TaskWithProject extends Task {
@@ -264,7 +263,6 @@ export default function Home() {
const getAgentIcon = (agent: string) => {
switch (agent) {
case "claude": return ;
- case "codex": return ;
default: return null;
}
};
@@ -297,8 +295,8 @@ export default function Home() {
-
Async Code
-
Manage parallel AI code agents (Codex & Claude)
+
Claude Code UI
+
Manage parallel Claude Code automation tasks
@@ -462,15 +460,6 @@ export default function Home() {
- Welcome to AI Code Automation
+ Welcome to Claude Code Automation
- Sign in to start automating your code with Claude Code & Codex CLI
+ Sign in to start automating your code with Claude Code
diff --git a/async-code-web/components/code-agent-settings.tsx b/async-code-web/components/code-agent-settings.tsx
index d3e1dfd..78e79ca 100644
--- a/async-code-web/components/code-agent-settings.tsx
+++ b/async-code-web/components/code-agent-settings.tsx
@@ -18,9 +18,6 @@ interface CodeAgentConfig {
env?: Record;
credentials?: Record | null;
};
- codex?: {
- env?: Record;
- };
}
const DEFAULT_CLAUDE_ENV = {
@@ -32,13 +29,6 @@ const DEFAULT_CLAUDE_CREDENTIALS = {
// Example structure - user can customize
};
-const DEFAULT_CODEX_ENV = {
- OPENAI_API_KEY: "",
- DISABLE_SANDBOX: "yes",
- CONTINUE_ON_BROWSER: "no",
- // Add other Codex-specific env vars here if needed
-};
-
// Helper function to check if credentials is meaningful (not empty/null/undefined)
const hasMeaningfulCredentials = (creds: any): boolean => {
if (!creds || creds === null || creds === undefined || creds === '') {
@@ -54,12 +44,10 @@ export function CodeAgentSettings() {
const { profile, refreshProfile } = useUserProfile();
const [claudeEnv, setClaudeEnv] = useState("");
const [claudeCredentials, setClaudeCredentials] = useState("");
- const [codexEnv, setCodexEnv] = useState("");
const [isLoading, setIsLoading] = useState(false);
const [errors, setErrors] = useState<{
claudeEnv?: string;
claudeCredentials?: string;
- codexEnv?: string;
}>({});
// Load settings from profile on mount
@@ -84,28 +72,11 @@ export function CodeAgentSettings() {
}
}
- // Handle backward compatibility for Codex config
- let codexConfig: any = {};
- if (prefs.codex) {
- // Check if it's the new structure
- if (prefs.codex.env) {
- codexConfig = prefs.codex;
- } else {
- // New structure for codex
- codexConfig = { env: prefs.codex };
- }
- } else if (prefs.codexCLI) {
- // Old codexCLI key - migrate to new codex key
- codexConfig = { env: prefs.codexCLI };
- }
-
setClaudeEnv(JSON.stringify(claudeConfig.env || DEFAULT_CLAUDE_ENV, null, 2));
setClaudeCredentials(JSON.stringify(claudeConfig.credentials || DEFAULT_CLAUDE_CREDENTIALS, null, 2));
- setCodexEnv(JSON.stringify(codexConfig.env || DEFAULT_CODEX_ENV, null, 2));
} else {
setClaudeEnv(JSON.stringify(DEFAULT_CLAUDE_ENV, null, 2));
setClaudeCredentials(JSON.stringify(DEFAULT_CLAUDE_CREDENTIALS, null, 2));
- setCodexEnv(JSON.stringify(DEFAULT_CODEX_ENV, null, 2));
}
}, [profile]);
@@ -124,9 +95,8 @@ export function CodeAgentSettings() {
// Validate all JSONs
const isClaudeEnvValid = validateJSON(claudeEnv, "claudeEnv");
const isClaudeCredentialsValid = validateJSON(claudeCredentials, "claudeCredentials");
- const isCodexEnvValid = validateJSON(codexEnv, "codexEnv");
- if (!isClaudeEnvValid || !isClaudeCredentialsValid || !isCodexEnvValid) {
+ if (!isClaudeEnvValid || !isClaudeCredentialsValid) {
toast.error("Please fix JSON errors before saving");
return;
}
@@ -135,23 +105,19 @@ export function CodeAgentSettings() {
try {
const claudeEnvConfig = JSON.parse(claudeEnv);
const claudeCredentialsConfig = JSON.parse(claudeCredentials);
- const codexEnvConfig = JSON.parse(codexEnv);
const preferences: CodeAgentConfig = {
claudeCode: {
env: claudeEnvConfig,
credentials: hasMeaningfulCredentials(claudeCredentialsConfig) ? claudeCredentialsConfig : null,
},
- codex: {
- env: codexEnvConfig,
- },
};
// Merge with existing preferences if any
const existingPrefs = (profile?.preferences || {}) as Record;
- // Clean up old keys during migration
- const { codexCLI, ...cleanedPrefs } = existingPrefs;
+ // Clean up old Codex keys during migration
+ const { codexCLI, codex, ...cleanedPrefs } = existingPrefs;
const mergedPrefs = {
...cleanedPrefs,
@@ -166,7 +132,7 @@ export function CodeAgentSettings() {
? "Claude credentials will be configured"
: "Claude credentials are empty and will be skipped";
- toast.success(`Code agent settings saved successfully. ${credentialsMessage}`);
+ toast.success(`Claude Code settings saved successfully. ${credentialsMessage}`);
} catch (error) {
console.error("Failed to save settings:", error);
toast.error("Failed to save settings");
@@ -179,9 +145,9 @@ export function CodeAgentSettings() {
- Code Agent Settings
+ Claude Code Settings
- Configure environment variables and credentials for each code agent. These settings will be used when creating containers.
+ Configure environment variables and credentials for Claude Code. These settings will be used when creating containers.
@@ -256,51 +222,9 @@ export function CodeAgentSettings() {