feat: WebSearch via SearXNG
Browse files- README.md +32 -285
- assets/VersperClaw.png +3 -0
- log.md +0 -0
README.md
CHANGED
|
@@ -1,306 +1,53 @@
|
|
| 1 |
-
#
|
| 2 |
|
| 3 |
-
|
|
|
|
|
|
|
| 4 |
|
| 5 |
-
|
| 6 |
|
| 7 |
```bash
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
> Checks your system, installs Bun if needed, clones, builds with all features enabled, and puts `versperclaw` on your PATH. Then just `export ANTHROPIC_API_KEY="sk-ant-..."` and run `versperclaw`.
|
| 12 |
-
|
| 13 |
-
<p align="center">
|
| 14 |
-
<img src="assets/screenshot.png" alt="versperclaw screenshot" width="800" />
|
| 15 |
-
</p>
|
| 16 |
-
|
| 17 |
-
---
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
## Local model
|
| 22 |
-
|
| 23 |
-
```bash
|
| 24 |
-
nvim ~/.bashrc
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
export ANTHROPIC_BASE_URL="http://localhost:11434/v1"
|
| 28 |
-
export ANTHROPIC_API_KEY="ollama"
|
| 29 |
-
export ANTHROPIC_MODEL="qwen2.5-coder:7b"
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
export ANTHROPIC_BETALOG_MAX_TOKENS=98304
|
| 33 |
-
|
| 34 |
-
claude() {
|
| 35 |
-
ANTHROPIC_BASE_URL="http://127.0.0.1:8001" \
|
| 36 |
-
ANTHROPIC_API_KEY="dummy" \
|
| 37 |
-
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 \
|
| 38 |
-
cli-dev --bare --model "Qwen3.5-9B.Q4_K_M.gguf"
|
| 39 |
-
}
|
| 40 |
-
```
|
| 41 |
-
|
| 42 |
-
## Telegram
|
| 43 |
-
|
| 44 |
-
```bash
|
| 45 |
-
/telegram
|
| 46 |
-
```
|
| 47 |
-
|
| 48 |
-
## Auto-Mode
|
| 49 |
-
|
| 50 |
-
```bash
|
| 51 |
-
shift-tab can cycle change mode
|
| 52 |
-
|
| 53 |
-
./cli-dev auto-mode config
|
| 54 |
-
|
| 55 |
-
{
|
| 56 |
-
"allow": [
|
| 57 |
-
"Running read-only shell commands (ls, cat, head, tail, wc, echo, env, which, whereis, uname, date, whoami, pwd, stat, file, du, df, free, top -b -n 1, ps)",
|
| 58 |
-
"Running version and help commands (node --version, python --version, ruby --version, go version, rustc --version, cargo --version, npm --version, bun --version, git --version, --help flags)",
|
| 59 |
-
"Running git read-only commands (git status, git log, git diff, git show, git branch, git tag, git remote, git stash list, git config --list --local)",
|
| 60 |
-
"Running tests, linters, formatters, and build commands within the project (npm test, npm run lint, npm run build, bun test, cargo test, go test, pytest, jest, vitest, eslint, prettier, biome, tsc)",
|
| 61 |
-
"Running package install commands within the project (npm install, yarn, pnpm install, bun install, pip install within a virtual environment, cargo build)",
|
| 62 |
-
"Reading, writing, creating, editing, and moving files within the current working directory",
|
| 63 |
-
"Running common development tools (node, python, ruby, go, cargo, make, cmake, gcc, clang) for compilation and execution of project code",
|
| 64 |
-
"Running Docker commands for building and running project containers (docker build, docker run, docker compose)",
|
| 65 |
-
"Creating and switching git branches, committing, stashing (git checkout -b, git commit, git add, git stash)"
|
| 66 |
-
],
|
| 67 |
-
"soft_deny": [
|
| 68 |
-
"Downloading and executing untrusted code from the internet (curl | bash, wget | sh, pip install from unverified URLs, npx from unknown packages)",
|
| 69 |
-
"Recursive force deletion of directories or files (rm -rf, Remove-Item -Recurse -Force) unless the user explicitly requested it",
|
| 70 |
-
"Modifying shell profiles, login scripts, or system startup items (.bashrc, .zshrc, .profile, cron jobs, launch agents/daemons)",
|
| 71 |
-
"Using sudo, su, or doas for privilege escalation unless the user explicitly mentions needing it",
|
| 72 |
-
"Starting network servers or listeners that accept external connections (python -m http.server, nc -l, ng serve --host 0.0.0.0)",
|
| 73 |
-
"Disabling security tools, modifying firewall rules, changing file permissions to world-writable on sensitive paths",
|
| 74 |
-
"Pushing to git remotes, force-pushing, modifying remote branches",
|
| 75 |
-
"Exporting, printing, or logging secrets, API keys, tokens, or credentials to public or shared locations",
|
| 76 |
-
"Installing system-level packages outside the project (apt-get install, brew install, yum install as root)",
|
| 77 |
-
"Modifying files outside the current working directory and standard config paths without explicit user request"
|
| 78 |
-
],
|
| 79 |
-
"environment": [
|
| 80 |
-
"The agent operates within a terminal session in the user's project directory",
|
| 81 |
-
"The user has chosen auto mode, meaning they trust the agent to perform routine development tasks autonomously",
|
| 82 |
-
"Standard development tools (git, node, python, etc.) are expected to be available",
|
| 83 |
-
"The project may use any common language or framework"
|
| 84 |
-
]
|
| 85 |
-
}
|
| 86 |
-
```
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
## What is this
|
| 90 |
-
|
| 91 |
-
This is a clean, buildable fork of Anthropic's [Claude Code](https://docs.anthropic.com/en/docs/claude-code) CLI -- the terminal-native AI coding agent, now called VersperClaw. The upstream source became publicly available on March 31, 2026 through a source map exposure in the npm distribution.
|
| 92 |
-
|
| 93 |
-
This fork applies three categories of changes on top of that snapshot:
|
| 94 |
-
|
| 95 |
-
### 1. Telemetry removed
|
| 96 |
-
|
| 97 |
-
The upstream binary phones home through OpenTelemetry/gRPC, GrowthBook analytics, Sentry error reporting, and custom event logging. In this build:
|
| 98 |
-
|
| 99 |
-
- All outbound telemetry endpoints are dead-code-eliminated or stubbed
|
| 100 |
-
- GrowthBook feature flag evaluation still works locally (needed for runtime feature gates) but does not report back
|
| 101 |
-
- No crash reports, no usage analytics, no session fingerprinting
|
| 102 |
-
|
| 103 |
-
### 2. Security-prompt guardrails removed
|
| 104 |
-
|
| 105 |
-
Anthropic injects system-level instructions into every conversation that constrain Claude's behavior beyond what the model itself enforces. These include:
|
| 106 |
-
|
| 107 |
-
- Hardcoded refusal patterns for certain categories of prompts
|
| 108 |
-
- Injected "cyber risk" instruction blocks
|
| 109 |
-
- Managed-settings security overlays pushed from Anthropic's servers
|
| 110 |
-
|
| 111 |
-
This build strips those injections. The model's own safety training still applies -- this just removes the extra layer of prompt-level restrictions that the CLI wraps around it.
|
| 112 |
-
|
| 113 |
-
### 3. Experimental features enabled
|
| 114 |
-
|
| 115 |
-
Claude Code ships with dozens of feature flags gated behind `bun:bundle` compile-time switches. Most are disabled in the public npm release. This build unlocks all 45+ flags that compile cleanly, including:
|
| 116 |
-
|
| 117 |
-
| Feature | What it does |
|
| 118 |
-
|---|---|
|
| 119 |
-
| `ULTRAPLAN` | Remote multi-agent planning on VersperClaw web (Opus-class) |
|
| 120 |
-
| `ULTRATHINK` | Deep thinking mode -- type "ultrathink" to boost reasoning effort |
|
| 121 |
-
| `VOICE_MODE` | Push-to-talk voice input and dictation |
|
| 122 |
-
| `AGENT_TRIGGERS` | Local cron/trigger tools for background automation |
|
| 123 |
-
| `BRIDGE_MODE` | IDE remote-control bridge (VS Code, JetBrains) |
|
| 124 |
-
| `TOKEN_BUDGET` | Token budget tracking and usage warnings |
|
| 125 |
-
| `BUILTIN_EXPLORE_PLAN_AGENTS` | Built-in explore/plan agent presets |
|
| 126 |
-
| `VERIFICATION_AGENT` | Verification agent for task validation |
|
| 127 |
-
| `BASH_CLASSIFIER` | Classifier-assisted bash permission decisions |
|
| 128 |
-
| `EXTRACT_MEMORIES` | Post-query automatic memory extraction |
|
| 129 |
-
| `HISTORY_PICKER` | Interactive prompt history picker |
|
| 130 |
-
| `MESSAGE_ACTIONS` | Message action entrypoints in the UI |
|
| 131 |
-
| `QUICK_SEARCH` | Prompt quick-search |
|
| 132 |
-
| `SHOT_STATS` | Shot-distribution stats |
|
| 133 |
-
| `COMPACTION_REMINDERS` | Smart reminders around context compaction |
|
| 134 |
-
| `CACHED_MICROCOMPACT` | Cached microcompact state through query flows |
|
| 135 |
-
|
| 136 |
-
See [FEATURES.md](FEATURES.md) for the full audit of all 88 flags and their status.
|
| 137 |
-
|
| 138 |
-
---
|
| 139 |
-
|
| 140 |
-
## Quick install
|
| 141 |
-
|
| 142 |
-
```bash
|
| 143 |
-
curl -fsSL https://raw.githubusercontent.com/paoloanzn/free-code/main/install.sh | bash
|
| 144 |
-
```
|
| 145 |
|
| 146 |
-
|
| 147 |
-
|
| 148 |
-
After install, just run:
|
| 149 |
-
```bash
|
| 150 |
-
export ANTHROPIC_API_KEY="sk-ant-..."
|
| 151 |
-
versperclaw
|
| 152 |
-
```
|
| 153 |
-
|
| 154 |
-
---
|
| 155 |
-
|
| 156 |
-
## Requirements
|
| 157 |
-
|
| 158 |
-
- [Bun](https://bun.sh) >= 1.3.11
|
| 159 |
-
- macOS or Linux (Windows via WSL)
|
| 160 |
-
- An Anthropic API key (set `ANTHROPIC_API_KEY` in your environment)
|
| 161 |
-
|
| 162 |
-
```bash
|
| 163 |
-
# Install Bun if you don't have it
|
| 164 |
-
curl -fsSL https://bun.sh/install | bash
|
| 165 |
```
|
| 166 |
|
| 167 |
-
|
| 168 |
-
|
| 169 |
-
## Build
|
| 170 |
|
| 171 |
```bash
|
| 172 |
-
#
|
| 173 |
-
|
| 174 |
-
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
bun install
|
| 178 |
-
|
| 179 |
-
# Standard build -- produces ./cli
|
| 180 |
-
bun run build
|
| 181 |
-
|
| 182 |
-
# Dev build -- dev version stamp, experimental GrowthBook key
|
| 183 |
-
bun run build:dev
|
| 184 |
|
| 185 |
-
#
|
| 186 |
-
|
| 187 |
|
| 188 |
-
#
|
| 189 |
-
|
| 190 |
-
|
| 191 |
-
|
| 192 |
-
### Build variants
|
| 193 |
-
|
| 194 |
-
| Command | Output | Features | Notes |
|
| 195 |
-
|---|---|---|---|
|
| 196 |
-
| `bun run build` | `./cli` | `VOICE_MODE` only | Production-like binary |
|
| 197 |
-
| `bun run build:dev` | `./cli-dev` | `VOICE_MODE` only | Dev version stamp |
|
| 198 |
-
| `bun run build:dev:full` | `./cli-dev` | All 45+ experimental flags | The full unlock build |
|
| 199 |
-
| `bun run compile` | `./dist/cli` | `VOICE_MODE` only | Alternative output directory |
|
| 200 |
|
| 201 |
-
#
|
|
|
|
| 202 |
|
| 203 |
-
|
|
|
|
| 204 |
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
bun run ./scripts/build.ts --feature=ULTRAPLAN --feature=ULTRATHINK
|
| 208 |
-
|
| 209 |
-
# Enable a specific flag on top of the dev build
|
| 210 |
-
bun run ./scripts/build.ts --dev --feature=BRIDGE_MODE
|
| 211 |
```
|
| 212 |
|
| 213 |
-
|
| 214 |
-
|
| 215 |
-
## Run
|
| 216 |
|
| 217 |
```bash
|
| 218 |
-
#
|
| 219 |
-
|
| 220 |
-
|
| 221 |
-
# Or the dev binary
|
| 222 |
./cli-dev
|
| 223 |
|
| 224 |
-
#
|
| 225 |
-
|
| 226 |
-
|
| 227 |
-
# Set your API key
|
| 228 |
-
export ANTHROPIC_API_KEY="sk-ant-..."
|
| 229 |
-
|
| 230 |
-
# Or use Claude.ai OAuth
|
| 231 |
-
./cli /login
|
| 232 |
-
```
|
| 233 |
-
|
| 234 |
-
### Quick test
|
| 235 |
-
|
| 236 |
-
```bash
|
| 237 |
-
# One-shot mode
|
| 238 |
-
./cli -p "what files are in this directory?"
|
| 239 |
-
|
| 240 |
-
# Interactive REPL (default)
|
| 241 |
-
./cli
|
| 242 |
-
|
| 243 |
-
# With specific model
|
| 244 |
-
./cli --model claude-sonnet-4-6-20250514
|
| 245 |
-
```
|
| 246 |
-
|
| 247 |
-
---
|
| 248 |
-
|
| 249 |
-
## Project structure
|
| 250 |
-
|
| 251 |
-
```
|
| 252 |
-
scripts/
|
| 253 |
-
build.ts # Build script with feature flag system
|
| 254 |
-
|
| 255 |
-
src/
|
| 256 |
-
entrypoints/cli.tsx # CLI entrypoint
|
| 257 |
-
commands.ts # Command registry (slash commands)
|
| 258 |
-
tools.ts # Tool registry (agent tools)
|
| 259 |
-
QueryEngine.ts # LLM query engine
|
| 260 |
-
screens/REPL.tsx # Main interactive UI
|
| 261 |
-
|
| 262 |
-
commands/ # /slash command implementations
|
| 263 |
-
tools/ # Agent tool implementations (Bash, Read, Edit, etc.)
|
| 264 |
-
components/ # Ink/React terminal UI components
|
| 265 |
-
hooks/ # React hooks
|
| 266 |
-
services/ # API client, MCP, OAuth, analytics
|
| 267 |
-
state/ # App state store
|
| 268 |
-
utils/ # Utilities
|
| 269 |
-
skills/ # Skill system
|
| 270 |
-
plugins/ # Plugin system
|
| 271 |
-
bridge/ # IDE bridge
|
| 272 |
-
voice/ # Voice input
|
| 273 |
-
tasks/ # Background task management
|
| 274 |
```
|
| 275 |
-
|
| 276 |
-
---
|
| 277 |
-
|
| 278 |
-
## Tech stack
|
| 279 |
-
|
| 280 |
-
| | |
|
| 281 |
-
|---|---|
|
| 282 |
-
| Runtime | [Bun](https://bun.sh) |
|
| 283 |
-
| Language | TypeScript |
|
| 284 |
-
| Terminal UI | React + [Ink](https://github.com/vadimdemedes/ink) |
|
| 285 |
-
| CLI parsing | [Commander.js](https://github.com/tj/commander.js) |
|
| 286 |
-
| Schema validation | Zod v4 |
|
| 287 |
-
| Code search | ripgrep (bundled) |
|
| 288 |
-
| Protocols | MCP, LSP |
|
| 289 |
-
| API | Anthropic Messages API |
|
| 290 |
-
|
| 291 |
-
---
|
| 292 |
-
|
| 293 |
-
## IPFS Mirror
|
| 294 |
-
|
| 295 |
-
A full copy of this repository is permanently pinned on IPFS via Filecoin:
|
| 296 |
-
|
| 297 |
-
- **CID:** `bafybeiegvef3dt24n2znnnmzcud2vxat7y7rl5ikz7y7yoglxappim54bm`
|
| 298 |
-
- **Gateway:** https://w3s.link/ipfs/bafybeiegvef3dt24n2znnnmzcud2vxat7y7rl5ikz7y7yoglxappim54bm
|
| 299 |
-
|
| 300 |
-
If this repo gets taken down, the code lives on.
|
| 301 |
-
|
| 302 |
-
---
|
| 303 |
-
|
| 304 |
-
## License
|
| 305 |
-
|
| 306 |
-
The original Claude Code source is the property of Anthropic. This fork exists because the source was publicly exposed through their npm distribution. Use at your own discretion.
|
|
|
|
| 1 |
+
# VersperClaw: Not Only AI Assistant Code Agent
|
| 2 |
|
| 3 |
+
<div align="center">
|
| 4 |
+
<img src="assets/VersperClaw.png" alt="VersperClaw" width="500">
|
| 5 |
+
</div>
|
| 6 |
|
| 7 |
+
## Quick Start
|
| 8 |
|
| 9 |
```bash
|
| 10 |
+
# script install
|
| 11 |
+
curl -fsSL https://raw.githubusercontent.com/versperai/VersperClaw/main/install.sh | bash
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 12 |
|
| 13 |
+
# source install
|
| 14 |
+
git clone https://github.com/versperai/VersperClaw && cd VersperClaw && bun install && bun run build:dev:full && ./cli-dev
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
```
|
| 16 |
|
| 17 |
+
## WebSearch && WebFetch Tools
|
|
|
|
|
|
|
| 18 |
|
| 19 |
```bash
|
| 20 |
+
# config search engine - searxng in archlinux
|
| 21 |
+
# make sure have install docker and docker-compose
|
| 22 |
+
sudo pacman -S docker-compose && docker
|
| 23 |
+
docker --version && docker compose version
|
| 24 |
+
sudo usermod -aG docker $USER
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
|
| 26 |
+
# make sure open pc and now start docker daemon
|
| 27 |
+
sudo systemctl enable --now docker
|
| 28 |
|
| 29 |
+
# install searxng in docker-compose
|
| 30 |
+
curl -fsSL \
|
| 31 |
+
-O https://raw.githubusercontent.com/searxng/searxng/master/container/docker-compose.yml \
|
| 32 |
+
-O https://raw.githubusercontent.com/searxng/searxng/master/container/.env.example
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
|
| 34 |
+
# add json source in formats behind html - jsonl in 87 lines
|
| 35 |
+
cd searxng/core-config/ && sudo nvim settings.yml
|
| 36 |
|
| 37 |
+
# start searxng engine
|
| 38 |
+
docker compose up -d
|
| 39 |
|
| 40 |
+
# check in every browser
|
| 41 |
+
firefox http://localhost:8080
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
```
|
| 43 |
|
| 44 |
+
## Telegram
|
|
|
|
|
|
|
| 45 |
|
| 46 |
```bash
|
| 47 |
+
# On startup, the CLI runs silently in the background, maintains a persistent Telegram connection, and listens for messages.
|
| 48 |
+
# start VersperClaw Cli
|
|
|
|
|
|
|
| 49 |
./cli-dev
|
| 50 |
|
| 51 |
+
# enter it into the cli input field and interactive configuration parameters
|
| 52 |
+
/telegram
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 53 |
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/VersperClaw.png
ADDED
|
Git LFS Details
|
log.md
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|