From e0cd0b721e4d5f003314be0d31885e5d78c03a82 Mon Sep 17 00:00:00 2001
From: Auto
Date: Thu, 26 Mar 2026 11:45:45 +0200
Subject: [PATCH 1/3] feat: add auth policy disclaimer and repo maintenance
notice
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Add prominent warnings about Anthropic's Agent SDK policy regarding
subscription-based authentication for third-party agents. Users are
now advised to use API keys instead of `claude login` to avoid
potential account suspension.
Changes:
- README: Add WARNING and NOTE admonition boxes at top (auth policy
+ repo no longer actively maintained)
- README: Flip auth recommendation to API key first, subscription second
- SettingsModal: Add amber warning Alert when Claude provider is selected
- auth.py: Update CLI/server help messages to recommend API key as Option 1
- Start scripts (start.sh, start.bat, start_ui.sh): Mention ANTHROPIC_API_KEY
alongside claude login in all auth hints
- start.py, autonomous_agent_demo.py: Update help text references
No functionality removed — subscription auth still works, warnings are
informational only.
Co-Authored-By: Claude Opus 4.6 (1M context)
---
README.md | 14 ++++++++++----
auth.py | 22 ++++++++++++++++------
autonomous_agent_demo.py | 4 ++--
start.bat | 5 +++--
start.py | 4 ++--
start.sh | 5 +++--
start_ui.sh | 6 +++---
ui/src/components/SettingsModal.tsx | 13 +++++++++++--
8 files changed, 50 insertions(+), 23 deletions(-)
diff --git a/README.md b/README.md
index de69d14..0ad71c9 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,12 @@
A long-running autonomous coding agent powered by the Claude Agent SDK. This tool can build complete applications over multiple sessions using a two-agent pattern (initializer + coding agent). Includes a React-based UI for monitoring progress in real-time.
+> [!WARNING]
+> **Authentication:** Anthropic's policy states that third-party developers may not offer `claude.ai` login or subscription-based rate limits for their products (including agents built on the Claude Agent SDK) unless previously approved. Using your Claude subscription with AutoForge may risk account suspension. We recommend using an API key from [console.anthropic.com](https://console.anthropic.com/) instead.
+
+> [!NOTE]
+> **This repository is no longer actively maintained.** Most agent coding tools now ship their own long-running harnesses, making this project less necessary. Feel free to fork and continue development on your own!
+
## Video Tutorial
[](https://youtu.be/nKiPOxDpcJY)
@@ -34,8 +40,8 @@ irm https://claude.ai/install.ps1 | iex
You need one of the following:
-- **Claude Pro/Max Subscription** - Use `claude login` to authenticate (recommended)
-- **Anthropic API Key** - Pay-per-use from https://console.anthropic.com/
+- **Anthropic API Key** (recommended) - Pay-per-use from https://console.anthropic.com/
+- **Claude Pro/Max Subscription** - Use `claude login` to authenticate (see warning above)
---
@@ -101,7 +107,7 @@ This launches the React-based web UI at `http://localhost:5173` with:
The start script will:
1. Check if Claude CLI is installed
-2. Check if you're authenticated (prompt to run `claude login` if not)
+2. Check if you're authenticated (prompt to configure authentication if not)
3. Create a Python virtual environment
4. Install dependencies
5. Launch the main menu
@@ -371,7 +377,7 @@ Edit `security.py` to add or remove commands from `ALLOWED_COMMANDS`.
Install the Claude Code CLI using the instructions in the Prerequisites section.
**"Not authenticated with Claude"**
-Run `claude login` to authenticate. The start script will prompt you to do this automatically.
+Set your API key via `ANTHROPIC_API_KEY` environment variable or the Settings UI. Alternatively, run `claude login` to use subscription credentials, but note that Anthropic's policy may not permit subscription-based auth for third-party agents.
**"Appears to hang on first run"**
This is normal. The initializer agent is generating detailed test cases, which takes significant time. Watch for `[Tool: ...]` output to confirm the agent is working.
diff --git a/auth.py b/auth.py
index a75d6cc..d815098 100644
--- a/auth.py
+++ b/auth.py
@@ -53,11 +53,16 @@ AUTH_ERROR_HELP_CLI = """
Claude CLI requires authentication to work.
-To fix this, run:
+Option 1 (Recommended): Set an API key
+ export ANTHROPIC_API_KEY=your-key-here
+ Get a key at: https://console.anthropic.com/
+
+Option 2: Use subscription login
claude login
-This will open a browser window to sign in.
-After logging in, try running this command again.
+ Note: Anthropic's policy may not permit using
+ subscription auth with third-party agents.
+ API key authentication is recommended.
==================================================
"""
@@ -69,11 +74,16 @@ AUTH_ERROR_HELP_SERVER = """
Claude CLI requires authentication to work.
-To fix this, run:
+Option 1 (Recommended): Set an API key
+ export ANTHROPIC_API_KEY=your-key-here
+ Get a key at: https://console.anthropic.com/
+
+Option 2: Use subscription login
claude login
-This will open a browser window to sign in.
-After logging in, try starting the agent again.
+ Note: Anthropic's policy may not permit using
+ subscription auth with third-party agents.
+ API key authentication is recommended.
================================================================================
"""
diff --git a/autonomous_agent_demo.py b/autonomous_agent_demo.py
index 3a6ae92..af95611 100644
--- a/autonomous_agent_demo.py
+++ b/autonomous_agent_demo.py
@@ -76,8 +76,8 @@ Examples:
python autonomous_agent_demo.py --project-dir my-app --testing-ratio 0
Authentication:
- Uses Claude CLI authentication (run 'claude login' if not logged in)
- Authentication is handled by start.bat/start.sh before this runs
+ Uses Claude CLI authentication. API key (ANTHROPIC_API_KEY) is recommended.
+ Alternatively run 'claude login', but note Anthropic's policy may restrict subscription auth.
""",
)
diff --git a/start.bat b/start.bat
index 9d1e95d..5998bb0 100644
--- a/start.bat
+++ b/start.bat
@@ -29,11 +29,12 @@ REM verify the CLI is installed and remind the user to login if needed
set "CLAUDE_DIR=%USERPROFILE%\.claude"
if exist "%CLAUDE_DIR%\" (
echo [OK] Claude CLI directory found
- echo ^(If you're not logged in, run: claude login^)
+ echo ^(Set ANTHROPIC_API_KEY or run: claude login^)
) else (
echo [!] Claude CLI not configured
echo.
- echo Please run 'claude login' to authenticate before continuing.
+ echo Please set ANTHROPIC_API_KEY or run 'claude login' to authenticate.
+ echo Note: API key auth is recommended. See README for details.
echo.
pause
)
diff --git a/start.py b/start.py
index a47da39..f6aee65 100644
--- a/start.py
+++ b/start.py
@@ -255,7 +255,7 @@ def run_spec_creation(project_dir: Path) -> bool:
print(f"Please ensure app_spec.txt exists in: {get_project_prompts_dir(project_dir)}")
# If failed with non-zero exit and no spec, might be auth issue
if result.returncode != 0:
- print("\nIf you're having authentication issues, try running: claude login")
+ print("\nIf you're having authentication issues, set ANTHROPIC_API_KEY or try: claude login")
return False
except FileNotFoundError:
@@ -416,7 +416,7 @@ def run_agent(project_name: str, project_dir: Path) -> None:
print(f"\nAgent error:\n{stderr_output.strip()}")
# Still hint about auth if exit was unexpected
if "error" in stderr_output.lower() or "exception" in stderr_output.lower():
- print("\nIf this is an authentication issue, try running: claude login")
+ print("\nIf this is an authentication issue, set ANTHROPIC_API_KEY or try: claude login")
except KeyboardInterrupt:
print("\n\nAgent interrupted. Run again to resume.")
diff --git a/start.sh b/start.sh
index 9b938af..7c86661 100755
--- a/start.sh
+++ b/start.sh
@@ -25,11 +25,12 @@ echo "[OK] Claude CLI found"
# verify the CLI is installed and remind the user to login if needed
if [ -d "$HOME/.claude" ]; then
echo "[OK] Claude CLI directory found"
- echo " (If you're not logged in, run: claude login)"
+ echo " (Set ANTHROPIC_API_KEY or run: claude login)"
else
echo "[!] Claude CLI not configured"
echo ""
- echo "Please run 'claude login' to authenticate before continuing."
+ echo "Please set ANTHROPIC_API_KEY or run 'claude login' to authenticate."
+ echo "Note: API key auth is recommended. See README for details."
echo ""
read -p "Press Enter to continue anyway, or Ctrl+C to exit..."
fi
diff --git a/start_ui.sh b/start_ui.sh
index 8c63ff9..2420c10 100755
--- a/start_ui.sh
+++ b/start_ui.sh
@@ -16,16 +16,16 @@ if ! command -v claude &> /dev/null; then
echo " The agent requires Claude CLI to work."
echo " Install it from: https://claude.ai/download"
echo ""
- echo " After installing, run: claude login"
+ echo " After installing, set ANTHROPIC_API_KEY or run: claude login"
echo ""
else
echo "[OK] Claude CLI found"
# Note: Claude CLI no longer stores credentials in ~/.claude/.credentials.json
# We can't reliably check auth status without making an API call
if [ -d "$HOME/.claude" ]; then
- echo " (If you're not logged in, run: claude login)"
+ echo " (Set ANTHROPIC_API_KEY or run: claude login)"
else
- echo "[!] Claude CLI not configured - run 'claude login' first"
+ echo "[!] Claude CLI not configured - set ANTHROPIC_API_KEY or run 'claude login'"
fi
fi
echo ""
diff --git a/ui/src/components/SettingsModal.tsx b/ui/src/components/SettingsModal.tsx
index 966095b..f402f3f 100644
--- a/ui/src/components/SettingsModal.tsx
+++ b/ui/src/components/SettingsModal.tsx
@@ -1,5 +1,5 @@
import { useState } from 'react'
-import { Loader2, AlertCircle, Check, Moon, Sun, Eye, EyeOff, ShieldCheck } from 'lucide-react'
+import { Loader2, AlertCircle, AlertTriangle, Check, Moon, Sun, Eye, EyeOff, ShieldCheck } from 'lucide-react'
import { useSettings, useUpdateSettings, useAvailableModels, useAvailableProviders } from '../hooks/useProjects'
import { useTheme, THEMES } from '../hooks/useTheme'
import type { ProviderInfo } from '../lib/types'
@@ -21,7 +21,7 @@ interface SettingsModalProps {
}
const PROVIDER_INFO_TEXT: Record = {
- claude: 'Default provider. Uses your Claude CLI credentials.',
+ claude: 'Default provider. Uses Claude CLI credentials. API key auth is recommended.',
kimi: 'Get an API key at kimi.com',
glm: 'Get an API key at open.bigmodel.cn',
ollama: 'Run models locally. Install from ollama.com',
@@ -245,6 +245,15 @@ export function SettingsModal({ isOpen, onClose }: SettingsModalProps) {
{PROVIDER_INFO_TEXT[currentProvider] ?? ''}
+ {currentProvider === 'claude' && (
+
+
+
+ Anthropic's policy may not permit using subscription-based auth (claude login) with third-party agents. Consider using an API key provider or setting the ANTHROPIC_API_KEY environment variable to avoid potential account issues.
+
+
+ )}
+
{/* Auth Token Field */}
{showAuthField && (
From 824484034fb91a31b88f2771d32d30c9f4338e79 Mon Sep 17 00:00:00 2001
From: Auto
Date: Thu, 26 Mar 2026 11:46:01 +0200
Subject: [PATCH 2/3] 0.1.19
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index fe727e1..413a88b 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "autoforge-ai",
- "version": "0.1.18",
+ "version": "0.1.19",
"description": "Autonomous coding agent with web UI - build complete apps with AI",
"license": "AGPL-3.0",
"bin": {
From 1341a16f07b0908daa9388f68293bdb62842eaba Mon Sep 17 00:00:00 2001
From: Auto
Date: Thu, 26 Mar 2026 11:46:33 +0200
Subject: [PATCH 3/3] version patch
---
ui/package-lock.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ui/package-lock.json b/ui/package-lock.json
index f973cb7..513ddd7 100644
--- a/ui/package-lock.json
+++ b/ui/package-lock.json
@@ -56,7 +56,7 @@
},
"..": {
"name": "autoforge-ai",
- "version": "0.1.18",
+ "version": "0.1.19",
"license": "AGPL-3.0",
"bin": {
"autoforge": "bin/autoforge.js"