@oneciel-ai/claude-any 0.1.24 → 0.1.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -3,6 +3,10 @@
3
3
  | English | [한국어](docs/README.ko.md) | [日本語](docs/README.ja.md) | [中文](docs/README.zh.md) |
4
4
  | --- | --- | --- | --- |
5
5
 
6
+ [![npm version](https://img.shields.io/npm/v/@oneciel-ai/claude-any?logo=npm&label=npm)](https://www.npmjs.com/package/@oneciel-ai/claude-any)
7
+ [![npm downloads](https://img.shields.io/npm/dm/@oneciel-ai/claude-any?logo=npm&label=downloads)](https://www.npmjs.com/package/@oneciel-ai/claude-any)
8
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
9
+
6
10
  > ## 🚀 Use the full Claude Code experience with free or low-cost LLMs
7
11
  >
8
12
  > - **Free** — [NVIDIA hosted NIM](https://build.nvidia.com/) (qwen3-coder-480b, gpt-oss, and friends) through the API Catalog.
@@ -30,7 +34,7 @@ arguments through unchanged.
30
34
 
31
35
  Credits: One Ciel LLC
32
36
 
33
- Current version: `0.1.24`
37
+ Current version: `0.1.27`
34
38
 
35
39
  ## Why This Exists
36
40
 
@@ -59,74 +63,78 @@ portable Python and shell wrappers. If you hit a macOS issue, please report it.
59
63
 
60
64
  ## Install
61
65
 
66
+ [![npm version](https://img.shields.io/npm/v/@oneciel-ai/claude-any.svg)](https://www.npmjs.com/package/@oneciel-ai/claude-any)
67
+ [![npm downloads](https://img.shields.io/npm/dm/@oneciel-ai/claude-any.svg)](https://www.npmjs.com/package/@oneciel-ai/claude-any)
68
+
62
69
  Requirements:
63
70
 
64
71
  - Python 3.10+
65
72
  - Claude Code installed and available as `claude`
66
- - Node/npm only if you enable MCP web tooling
73
+ - Node/npm (used for the install shim and optional MCP web tooling)
67
74
 
68
- Current install from GitHub:
75
+ **Install from the npm registry (recommended):**
69
76
 
70
77
  ```sh
71
- npm install -g https://github.com/OneCielAI/claude-any.git
78
+ npm install -g @oneciel-ai/claude-any
72
79
  claude-any
73
80
  ```
74
81
 
75
- Source install:
82
+ **Upgrade:**
76
83
 
77
84
  ```sh
78
- git clone https://github.com/OneCielAI/claude-any.git
79
- cd claude-any
80
- ./install.sh
81
- claude-any
85
+ npm update -g @oneciel-ai/claude-any
86
+ claude-any version
82
87
  ```
83
88
 
84
- Windows PowerShell source install:
89
+ **Uninstall:**
85
90
 
86
- ```powershell
87
- git clone https://github.com/OneCielAI/claude-any.git
88
- cd claude-any
89
- .\install.ps1
90
- claude-any
91
+ ```sh
92
+ npm uninstall -g @oneciel-ai/claude-any
91
93
  ```
92
94
 
93
- Registry install, after the first npm publish:
95
+ ### Alternative install paths
96
+
97
+ Install directly from the GitHub repository (useful for testing unreleased
98
+ commits between npm publishes):
94
99
 
95
100
  ```sh
96
- npm install -g @oneciel-ai/claude-any
101
+ npm install -g https://github.com/OneCielAI/claude-any.git
97
102
  claude-any
98
103
  ```
99
104
 
100
- Upgrade:
105
+ POSIX source install:
101
106
 
102
107
  ```sh
103
- # GitHub install, current recommended path
104
- npm install -g https://github.com/OneCielAI/claude-any.git --force
105
- claude-any version
108
+ git clone https://github.com/OneCielAI/claude-any.git
109
+ cd claude-any
110
+ ./install.sh
111
+ claude-any
106
112
  ```
107
113
 
108
- To make `npm update -g @oneciel-ai/claude-any` work, the package must be
109
- published to the public npm registry under the same package name:
114
+ Windows PowerShell source install:
110
115
 
111
- ```sh
112
- npm login
113
- npm publish --access public
114
- npm install -g @oneciel-ai/claude-any
115
- npm update -g @oneciel-ai/claude-any
116
+ ```powershell
117
+ git clone https://github.com/OneCielAI/claude-any.git
118
+ cd claude-any
119
+ .\install.ps1
120
+ claude-any
116
121
  ```
117
122
 
118
- For automated publishing, create an npm automation token, save it as the
119
- repository secret `NPM_TOKEN`, then publish a GitHub Release or run the
120
- `Publish to npm` workflow manually.
123
+ ### Releasing (maintainers)
121
124
 
122
- Versioning uses SemVer. For future releases, bump `version` in `package.json`,
123
- create a matching Git tag such as `v0.1.1`, and publish a GitHub Release to
124
- trigger the npm publish workflow. After registry publication, the normal
125
- registry upgrade command will be:
125
+ The npm registry version is published automatically by the
126
+ [`Publish to npm`](.github/workflows/npm-publish.yml) workflow when a new
127
+ GitHub Release is published. The workflow needs an `NPM_TOKEN` repository
128
+ secret containing a granular access token for `@oneciel-ai/claude-any` with
129
+ *Bypass 2FA for publishing* enabled.
126
130
 
127
- ```sh
128
- npm update -g @oneciel-ai/claude-any
129
- ```
131
+ Release flow:
132
+
133
+ 1. Bump `version` in `package.json` and `VERSION` in `claude_any.py`.
134
+ 2. Add a Changelog entry.
135
+ 3. `git tag -a vX.Y.Z -m "..." && git push origin vX.Y.Z`.
136
+ 4. `gh release create vX.Y.Z --title "..." --notes "..."` — this triggers
137
+ the publish workflow.
130
138
 
131
139
 
132
140
  ![Claude Any menu](docs/assets/claude-any-main.en.png)
@@ -235,9 +243,38 @@ steps under that larger model's supervision.
235
243
  `Cannot create agent worktree: not in a git repository...`.
236
244
  - Config file caching — settings are read from disk once and reused until the
237
245
  file changes, reducing per-request overhead in the router.
246
+ - Router control-plane endpoints for headless agent coordination:
247
+ `/ca/chat/messages`, `/ca/chat/wait`, `/ca/chat/stream`, `/ca/chat/files`,
248
+ and `/ca/plan/artifacts`.
238
249
 
239
250
  ## Changelog
240
251
 
252
+ ### 0.1.27
253
+
254
+ - **Plan mode support for non-Anthropic providers**: the router now keeps
255
+ `EnterPlanMode` available and supports Claude Code Plan mode even when the
256
+ upstream model does not reliably choose that internal tool. Forced
257
+ `tool_choice=EnterPlanMode` is answered locally with a valid Anthropic
258
+ `tool_use`, and long implementation requests that receive only a short or
259
+ empty non-actionable text response are promoted to `EnterPlanMode` using
260
+ language-agnostic structure checks.
261
+ - **Plan-mode self-tool handling**: unsupported Claude Code self-tools are
262
+ still stripped for non-Anthropic providers, but Plan-mode tools are handled
263
+ separately so planning can work instead of being disabled.
264
+
265
+ ### 0.1.25
266
+
267
+ - **Plan-mode diagnostics**: set `~/.config/claude-any/log-level` to `TRACE`
268
+ to capture redacted request and response summaries in `requests.jsonl` /
269
+ `responses.jsonl`.
270
+ - **Headless agent chat service**: the router exposes a small HTTP control
271
+ plane for sub coding agents. Agents can post messages, poll updates after
272
+ the last seen message id, or wait on an SSE stream when they do not have
273
+ their own loop.
274
+ - **Plan artifact serving**: agents can create plan files through the router
275
+ and share stable local URLs, matching Claude Code's file/artifact-oriented
276
+ Plan-mode workflow without copying Anthropic's internal implementation.
277
+
241
278
  ### 0.1.24
242
279
 
243
280
  - **First public npm release** under the correct scope: `@oneciel-ai/claude-any`. Earlier 0.1.x versions were never published to the registry; this is the version that is actually installable via `npm install -g @oneciel-ai/claude-any`.
@@ -414,6 +451,29 @@ claude-any --ca-no-update-check -p "Reply with OK only." --output-format text
414
451
 
415
452
  All other arguments are passed through to Claude Code.
416
453
 
454
+ ## Headless Agent Chat
455
+
456
+ When the claude-any router is running, sub agents can coordinate through local
457
+ HTTP endpoints without opening the menu:
458
+
459
+ ```sh
460
+ # Send a message to a channel.
461
+ curl -s http://127.0.0.1:8799/ca/chat/messages \
462
+ -H 'content-type: application/json' \
463
+ -d '{"channel":"agents","sender_id":"codex","recipients":["kimi"],"message":"Need logs after id 42"}'
464
+
465
+ # Poll updates after the last message id.
466
+ curl -s 'http://127.0.0.1:8799/ca/chat/messages?channel=agents&recipient=kimi&after=42'
467
+
468
+ # Wait on a stream until messages arrive.
469
+ curl -N 'http://127.0.0.1:8799/ca/chat/stream?channel=agents&recipient=kimi&after=42&timeout=300'
470
+
471
+ # Publish a plan file and get a served URL.
472
+ curl -s http://127.0.0.1:8799/ca/plan/artifacts \
473
+ -H 'content-type: application/json' \
474
+ -d '{"title":"handoff","name":"handoff.md","content":"# Plan\n- step 1"}'
475
+ ```
476
+
417
477
  ## Security
418
478
 
419
479
  Do not commit runtime configuration or API keys. Claude Any stores local runtime