Skip to content
Open
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: OpenClaude Discussions
url: https://github.com/Gitlawb/openclaude/discussions
url: https://github.com/Twigpine/openclaude/discussions
about: Use Discussions for setup help, questions, ideas, and community conversation.
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

## Testing

- [ ] I ran the required [local preflight](https://github.com/Gitlawb/openclaude/blob/main/CONTRIBUTING.md#validation).
- [ ] I ran the required [local preflight](https://github.com/Twigpine/openclaude/blob/main/CONTRIBUTING.md#validation).
- exact commands and results:
- focused tests:
- documented skipped checks, platform limitations, or verified pre-existing failures:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ concurrency:

jobs:
release-please:
if: ${{ github.repository == 'Gitlawb/openclaude' }}
if: ${{ github.repository == 'Twigpine/openclaude' }}
name: Release Please
runs-on: ubuntu-latest
permissions:
Expand Down Expand Up @@ -164,7 +164,7 @@ jobs:
echo "## Released ${{ needs.release-please.outputs.tag_name }}"
echo
echo "- npm: https://www.npmjs.com/package/@gitlawb/openclaude"
echo "- GitHub: https://github.com/Gitlawb/openclaude/releases/tag/${{ needs.release-please.outputs.tag_name }}"
echo "- GitHub: https://github.com/Twigpine/openclaude/releases/tag/${{ needs.release-please.outputs.tag_name }}"
} >> "$GITHUB_STEP_SUMMARY"

docker:
Expand Down
2 changes: 1 addition & 1 deletion ANDROID_INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ node --version # should be v20+
### Step 3 — Clone OpenClaude

```bash
git clone https://github.com/Gitlawb/openclaude.git
git clone https://github.com/Twigpine/openclaude.git
cd openclaude
npm install
npm link
Expand Down
12 changes: 6 additions & 6 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ OpenClaude is a rapidly evolving open-source coding-agent CLI with support for m

## Before You Start

- Search existing [issues](https://github.com/Gitlawb/openclaude/issues) and [discussions](https://github.com/Gitlawb/openclaude/discussions) before opening a new thread.
- Check [open pull requests](https://github.com/Gitlawb/openclaude/pulls) for work that overlaps with your contribution. If a PR already exists that addresses the same change, open an issue or discussion first to align on direction — duplicate PRs may be closed without review.
- Search existing [issues](https://github.com/Twigpine/openclaude/issues) and [discussions](https://github.com/Twigpine/openclaude/discussions) before opening a new thread.
- Check [open pull requests](https://github.com/Twigpine/openclaude/pulls) for work that overlaps with your contribution. If a PR already exists that addresses the same change, open an issue or discussion first to align on direction — duplicate PRs may be closed without review.
- Use issues for confirmed bugs and actionable feature work.
- Use discussions for setup help, ideas, and general community conversation.
- For larger changes, open an issue first so the scope is clear before implementation.
Expand Down Expand Up @@ -114,8 +114,8 @@ If you find yourself getting fix requests on every round, treat that as a signal

We are proactive about closing duplicate PRs. Before submitting, **it is your responsibility to check** whether a similar PR already exists:

- Search [open pull requests](https://github.com/Gitlawb/openclaude/pulls) for related work
- Check [closed pull requests](https://github.com/Gitlawb/openclaude/pulls?q=is%3Apr+is%3Aclosed) to see if similar work was previously addressed or declined
- Search [open pull requests](https://github.com/Twigpine/openclaude/pulls) for related work
- Check [closed pull requests](https://github.com/Twigpine/openclaude/pulls?q=is%3Apr+is%3Aclosed) to see if similar work was previously addressed or declined
- If you find an existing PR, engage in that thread rather than opening a new one

Duplicate PRs will likely be closed without review or follow-up. This isn't personal — it's about keeping the review queue focused and efficient.
Expand Down Expand Up @@ -268,7 +268,7 @@ bun run typecheck:type-tests
node bin/openclaude --version
bun run test:provider
npm run test:provider-recommendation
git fetch https://github.com/Gitlawb/openclaude.git main
git fetch https://github.com/Twigpine/openclaude.git main
bun run security:pr-scan -- --base FETCH_HEAD --head HEAD
```

Expand Down Expand Up @@ -309,7 +309,7 @@ bun run web:build
Notes on the local preflight:

- `bun run check` already builds the CLI and includes smoke, deadcode, and the full unit pass (`test:full`) — do not run those separately, or you execute work twice.
- Fetching upstream `main` by URL avoids assuming that a fork checkout's `origin` points at Gitlawb/openclaude. `FETCH_HEAD` is the fetched upstream tip. The scan deliberately uses local `HEAD` so it includes commits that have not been pushed yet; CI uses the pushed PR head SHA after the push.
- Fetching upstream `main` by URL avoids assuming that a fork checkout's `origin` points at Twigpine/openclaude. `FETCH_HEAD` is the fetched upstream tip. The scan deliberately uses local `HEAD` so it includes commits that have not been pushed yet; CI uses the pushed PR head SHA after the push.
- The web CI job remains unconditional as an integration backstop. Contributors do not need to run the web suite locally for changes that cannot affect the site.
- This preflight covers the same command families as CI, but it does not reproduce CI exactly in one shell. CI runs the main checks under Node 22 and 24.11.x, separately builds and launches under exact Node 22.0.0, and executes every job on a clean runner.

Expand Down
28 changes: 14 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,26 @@
<img src="docs/assets/openclaude-wordmark.png" alt="OpenClaude — Open terminal for any LLM" width="830">

<p>
<a href="https://trendshift.io/repositories/25807?utm_source=trendshift-badge&amp;utm_medium=badge&amp;utm_campaign=badge-trendshift-25807" target="_blank" rel="noopener noreferrer"><img src="https://trendshift.io/api/badge/trendshift/repositories/25807/daily?language=TypeScript" alt="Gitlawb%2Fopenclaude | Trendshift" width="250" height="55"/></a>
<a href="https://trendshift.io/repositories/25807?utm_source=trendshift-badge&amp;utm_medium=badge&amp;utm_campaign=badge-trendshift-25807" target="_blank" rel="noopener noreferrer"><img src="https://trendshift.io/api/badge/trendshift/repositories/25807/monthly?language=TypeScript" alt="Gitlawb%2Fopenclaude | Trendshift" width="250" height="55"/></a>
<a href="https://trendshift.io/repositories/25807?utm_source=repository-badge&amp;utm_medium=badge&amp;utm_campaign=badge-repository-25807" target="_blank" rel="noopener noreferrer"><img src="https://trendshift.io/api/badge/repositories/25807" alt="Gitlawb%2Fopenclaude | Trendshift" width="250" height="55"/></a>
<a href="https://trendshift.io/repositories/25807?utm_source=trendshift-badge&amp;utm_medium=badge&amp;utm_campaign=badge-trendshift-25807" target="_blank" rel="noopener noreferrer"><img src="https://trendshift.io/api/badge/trendshift/repositories/25807/daily?language=TypeScript" alt="Twigpine%2Fopenclaude | Trendshift" width="250" height="55"/></a>
<a href="https://trendshift.io/repositories/25807?utm_source=trendshift-badge&amp;utm_medium=badge&amp;utm_campaign=badge-trendshift-25807" target="_blank" rel="noopener noreferrer"><img src="https://trendshift.io/api/badge/trendshift/repositories/25807/monthly?language=TypeScript" alt="Twigpine%2Fopenclaude | Trendshift" width="250" height="55"/></a>
<a href="https://trendshift.io/repositories/25807?utm_source=repository-badge&amp;utm_medium=badge&amp;utm_campaign=badge-repository-25807" target="_blank" rel="noopener noreferrer"><img src="https://trendshift.io/api/badge/repositories/25807" alt="Twigpine%2Fopenclaude | Trendshift" width="250" height="55"/></a>
</p>
</div>

OpenClaude is an open-source coding-agent CLI for cloud and local model providers.

Use OpenAI-compatible APIs, Gemini, GitHub Models, Codex OAuth, Codex, Ollama, Atomic Chat, and other supported backends while keeping one terminal-first workflow: prompts, tools, agents, MCP, slash commands, and streaming output.

[![PR Checks](https://github.com/Gitlawb/openclaude/actions/workflows/pr-checks.yml/badge.svg?branch=main)](https://github.com/Gitlawb/openclaude/actions/workflows/pr-checks.yml)
[![Release](https://img.shields.io/github/v/tag/Gitlawb/openclaude?label=release&color=0ea5e9)](https://github.com/Gitlawb/openclaude/tags)
[![PR Checks](https://github.com/Twigpine/openclaude/actions/workflows/pr-checks.yml/badge.svg?branch=main)](https://github.com/Twigpine/openclaude/actions/workflows/pr-checks.yml)
[![Release](https://img.shields.io/github/v/tag/Twigpine/openclaude?label=release&color=0ea5e9)](https://github.com/Twigpine/openclaude/tags)
[![npm downloads](https://img.shields.io/npm/dm/@gitlawb/openclaude)](https://www.npmjs.com/package/@gitlawb/openclaude)
[![Discussions](https://img.shields.io/badge/discussions-open-7c3aed)](https://github.com/Gitlawb/openclaude/discussions)
[![Discussions](https://img.shields.io/badge/discussions-open-7c3aed)](https://github.com/Twigpine/openclaude/discussions)
[![Discord](https://img.shields.io/badge/Discord-join-5865F2?logo=discord&logoColor=white)](https://discord.gg/k68zFR6AcB)
[![X](https://img.shields.io/badge/X-@gitlawb-000000?logo=x&logoColor=white)](https://x.com/gitlawb)
[![Security Policy](https://img.shields.io/badge/security-policy-0f766e)](SECURITY.md)
[![License](https://img.shields.io/badge/license-MIT-2563eb)](LICENSE)

OpenClaude is also mirrored to GitLawb:
OpenClaude is also mirrored to Twigpine:
[gitlawb.com/node/repos/z6MkqDnb/openclaude](https://gitlawb.com/node/repos/z6MkqDnb/openclaude)

[Quick Start](#quick-start) | [Setup Guides](#setup-guides) | [Providers](#supported-providers) | [Development](#development) | [VS Code Extension](#vs-code-extension) | [Partners](#partners) | [Community](#community)
Expand All @@ -31,8 +31,8 @@ OpenClaude is also mirrored to GitLawb:
<table align="center">
<tr>
<td align="center" width="150" height="80">
<a href="https://gitlawb.com">
<img src="https://gitlawb.com/logo.png" alt="GitLawb logo" width="72">
<a href="https://twigpine.com">
<img src="https://twigpine.com/logo.png" alt="Twigpine logo" width="72">
</a>
</td>
<td align="center" width="150" height="80">
Expand All @@ -57,7 +57,7 @@ OpenClaude is also mirrored to GitLawb:
</td>
</tr>
<tr>
<td align="center"><a href="https://gitlawb.com"><strong>GitLawb</strong></a></td>
<td align="center"><a href="https://twigpine.com"><strong>Twigpine</strong></a></td>
<td align="center"><a href="https://bankr.bot"><strong>Bankr.bot</strong></a></td>
<td align="center"><a href="https://atomic.chat/"><strong>Atomic Chat</strong></a></td>
<td align="center"><a href="https://mimo.mi.com"><strong>Xiaomi MiMo</strong></a></td>
Expand Down Expand Up @@ -322,7 +322,7 @@ Advanced and source-build guides:
| GitHub Models | `/onboard-github` | Interactive onboarding with saved credentials |
| Codex OAuth | `/provider` | Opens ChatGPT sign-in in your browser and stores Codex credentials securely |
| Codex | `/provider` | Uses existing Codex CLI auth, OpenClaude secure storage, or env credentials |
| Gitlawb Opengateway | Startup default, `/provider`, or env vars | Smart gateway at `https://opengateway.gitlawb.com/v1`; requires an API key from https://gitlawb.com/opengateway/keys and routes Xiaomi MiMo and GMI Cloud partner models by `OPENAI_MODEL` |
| Twigpine Opengateway | Startup default, `/provider`, or env vars | Smart gateway at `https://opengateway.gitlawb.com/v1`; requires an API key from https://gitlawb.com/opengateway/keys and routes Xiaomi MiMo and GMI Cloud partner models by `OPENAI_MODEL` |
| OpenCode Zen | `/provider` or env vars | Pay-as-you-go AI gateway (48 models); uses `OPENCODE_API_KEY` via `https://opencode.ai/zen/v1`; shared key with OpenCode Go |
| OpenCode Go | `/provider` or env vars | $10/mo subscription for open models (13 models); uses `OPENCODE_API_KEY` via `https://opencode.ai/zen/go/v1`; shared key with OpenCode Zen |
| Xiaomi MiMo | `/provider` or env vars | OpenAI-compatible API at `https://mimo.mi.com`; uses `MIMO_API_KEY` and defaults to `mimo-v2.5-pro` |
Expand Down Expand Up @@ -375,7 +375,7 @@ OpenClaude supports multiple providers, but behavior is not identical across all
- Smaller local models can struggle with long multi-step tool flows
- Some providers impose lower output caps than the CLI defaults, and OpenClaude adapts where possible
- AI/ML API uses the OpenAI-compatible route, defaults to `gpt-4o`, and only surfaces chat-capable models from its public catalog
- Gitlawb Opengateway is the fresh-install startup default and requires an API key from https://gitlawb.com/opengateway/keys. It uses one OpenAI-compatible base URL; switch between `mimo-*` and `google/gemini-3.1-flash-lite-preview` with `/model`, and do not pin the base URL to `/v1/xiaomi-mimo`.
- Twigpine Opengateway is the fresh-install startup default and requires an API key from https://gitlawb.com/opengateway/keys. It uses one OpenAI-compatible base URL; switch between `mimo-*` and `google/gemini-3.1-flash-lite-preview` with `/model`, and do not pin the base URL to `/v1/xiaomi-mimo`.
- Z.AI GLM Coding Plan uses `https://api.z.ai/api/coding/paas/v4` with `glm-5.2` by default. On that direct route, GLM-5.3-Flash is selectable as `glm-5.3-flash` and accepts image input. Its OpenClaude effort choices are `low`, `high`, and `xhigh`, with `xhigh` requesting Z.AI `max`; GLM-5.3 and the existing GLM-5.2 query controls remain supported. These capabilities are not claimed for gateways that happen to carry the same model name.
- Xiaomi MiMo uses `api-key` header auth on the direct OpenAI-compatible route and currently does not support `/usage` reporting in OpenClaude
- GitHub Copilot serializes sub-agent execution by default to reduce Premium Request consumption — see [Agent Routing and Step Limits](docs/agent-routing.md#github-copilot-sub-agent-optimization) for tuning
Expand Down Expand Up @@ -501,8 +501,8 @@ If you believe you found a security issue, see [SECURITY.md](SECURITY.md).

## Community

- Use [GitHub Discussions](https://github.com/Gitlawb/openclaude/discussions) for Q&A, ideas, and community conversation
- Use [GitHub Issues](https://github.com/Gitlawb/openclaude/issues) for confirmed bugs and actionable feature work
- Use [GitHub Discussions](https://github.com/Twigpine/openclaude/discussions) for Q&A, ideas, and community conversation
- Use [GitHub Issues](https://github.com/Twigpine/openclaude/issues) for confirmed bugs and actionable feature work
- Join the [Discord](https://discord.gg/k68zFR6AcB) to chat with the community in real time
- Follow [@gitlawb on X](https://x.com/gitlawb) for updates and announcements

Expand Down
8 changes: 4 additions & 4 deletions docs/advanced-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ npm install -g @gitlawb/openclaude@latest
Use Bun `1.3.13` or newer for source builds. Older Bun versions can fail during `bun run build`.

```bash
git clone https://github.com/Gitlawb/openclaude.git
git clone https://github.com/Twigpine/openclaude.git
cd openclaude

bun install
Expand All @@ -29,7 +29,7 @@ npm link
### Option C: Run directly with Bun

```bash
git clone https://github.com/Gitlawb/openclaude.git
git clone https://github.com/Twigpine/openclaude.git
cd openclaude

bun install
Expand Down Expand Up @@ -276,7 +276,7 @@ MiMo, MiniMax, Qwen). Uses the same `OPENCODE_API_KEY` as OpenCode Zen.
OpenClaude automatically sends the session and product identity headers that
OpenCode Go requires for prompt caching and traffic attribution.

### Gitlawb Opengateway
### Twigpine Opengateway

```bash
export CLAUDE_CODE_USE_OPENAI=1
Expand Down Expand Up @@ -689,7 +689,7 @@ command-injection validation, and sensitive-file / auto-edit guards. These are
conservative by design, but a few of them can surface as refusals or approval
prompts for entirely benign, routine coding tasks (e.g. editing `.gitmodules`,
running a build script that contains `$(date)`, or writing a CTF port scanner).
See [issue #1616](https://github.com/Gitlawb/openclaude/issues/1616).
See [issue #1616](https://github.com/Twigpine/openclaude/issues/1616).

Set `OPENCLAUDE_SAFETY_LEVEL` to dial strictness without changing behavior for
everyone:
Expand Down
2 changes: 1 addition & 1 deletion docs/integrations/how-to/add-gateway.md
Original file line number Diff line number Diff line change
Expand Up @@ -453,7 +453,7 @@ Use `discoveryRefreshMode` to match the operational shape of the route:

If an authenticated inference route exposes a public model endpoint, set
`catalog.discovery.requiresAuth` to `false` while keeping `setup.requiresAuth`
enabled. OpenRouter and Gitlawb Opengateway use this split: model listing is
enabled. OpenRouter and Twigpine Opengateway use this split: model listing is
keyless, but inference still requires an API key. Avoid combining
`discoveryRefreshMode: 'startup'` with an `openai-compatible-models` readiness
probe when both execute the same request, because that doubles startup traffic.
Expand Down
2 changes: 1 addition & 1 deletion docs/integrations/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ model is normalized.

### Public aggregator model discovery

OpenRouter and Gitlawb Opengateway use public model-list endpoints to keep their
OpenRouter and Twigpine Opengateway use public model-list endpoints to keep their
hybrid catalogs current. Listing models does not require credentials, but chat
and other inference requests still require the provider's API key. OpenRouter
refreshes stale discovery data in the background. Opengateway refreshes once at
Expand Down
4 changes: 2 additions & 2 deletions docs/non-technical-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,10 +153,10 @@ If you want source builds, advanced provider profiles, diagnostics, or Bun-based

## Getting Help

- **GitHub Discussions**: https://github.com/Gitlawb/openclaude/discussions
- **GitHub Discussions**: https://github.com/Twigpine/openclaude/discussions
Use this for Q&A, setup help, and community conversation.

- **GitHub Issues**: https://github.com/Gitlawb/openclaude/issues
- **GitHub Issues**: https://github.com/Twigpine/openclaude/issues
Use this for confirmed bugs and feature requests.

### Quick diagnostic check
Expand Down
4 changes: 2 additions & 2 deletions docs/skills.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ openclaude skills verify [options] Check installed skills for re

## Install from the registry

The default registry is the Gitlawb Skill Hub, published as `registry.json` in [Gitlawb/openclaude-skills](https://github.com/Gitlawb/openclaude-skills).
The default registry is the Twigpine Skill Hub, published as `registry.json` in [Twigpine/openclaude-skills](https://github.com/Twigpine/openclaude-skills).
Install a skill by its registry id:

```bash
Expand Down Expand Up @@ -76,7 +76,7 @@ ci-fix enabled Diagnoses and fixes CI pipeline failures.

```text
$ openclaude skills verify
Found 2 installed skills. Revocation list: https://raw.githubusercontent.com/Gitlawb/openclaude-skills/main/revocations.json
Found 2 installed skills. Revocation list: https://raw.githubusercontent.com/Twigpine/openclaude-skills/main/revocations.json
ci-fix ok
hand-made skipped (no registry metadata)
eyebrow not found; install it to check skill contents against a lockfile (see docs/skills.md).
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@
},
"repository": {
"type": "git",
"url": "https://github.com/Gitlawb/openclaude.git"
"url": "https://github.com/Twigpine/openclaude.git"
},
"keywords": [
"claude-code",
Expand Down
Loading
Loading