@tryarcanist/cli 0.1.136 → 0.1.138

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
@@ -52,7 +52,7 @@ Supported environment variables:
52
52
 
53
53
  ```bash
54
54
  export ARCANIST_TOKEN=arc_...
55
- export ARCANIST_API_URL=https://app.tryarcanist.com
55
+ export ARCANIST_API_URL=https://api.tryarcanist.com
56
56
  ```
57
57
 
58
58
  `--token` and `--api-url` are available for one-off invocations. Prefer `ARCANIST_TOKEN` over `--token` for persistent use; CLI flags can appear in shell history and process lists.
@@ -64,7 +64,7 @@ Non-local API URLs must use HTTPS and must not embed credentials.
64
64
  ```bash
65
65
  arcanist --json
66
66
  arcanist --quiet
67
- arcanist --api-url https://app.tryarcanist.com
67
+ arcanist --api-url https://api.tryarcanist.com
68
68
  arcanist --token arc_...
69
69
  arcanist --no-color
70
70
  ```
@@ -100,7 +100,7 @@ Mutation commands send an `Idempotency-Key` header. The CLI does not auto-retry
100
100
  ```bash
101
101
  arcanist auth login
102
102
  printf "arc_..." | arcanist auth login --token-stdin
103
- arcanist auth login --api-url https://app.tryarcanist.com
103
+ arcanist auth login --api-url https://api.tryarcanist.com
104
104
  ```
105
105
 
106
106
  ### `arcanist auth whoami`
@@ -118,6 +118,7 @@ Creates a new session and sends the initial prompt.
118
118
 
119
119
  ```bash
120
120
  arcanist sessions create https://github.com/your-org/your-repo "fix the login bug"
121
+ arcanist sessions create your-org/your-repo "continue this work" --start-branch wip/resume-me
121
122
  printf "add tests" | arcanist sessions create your-org/your-repo --prompt-stdin --json
122
123
  printf "add tests" | arcanist sessions create your-org/your-repo --prompt-stdin --wait
123
124
  arcanist sessions create your-org/your-repo - --model gpt-5.5
@@ -135,6 +136,8 @@ arcanist sessions create your-org/your-repo "retry-safe create" --idempotency-ke
135
136
 
136
137
  Use `--base-branch <branch>` to target a non-default base branch. The CLI only validates that the branch value is non-empty; branch existence is checked later by the session runtime.
137
138
 
139
+ Use `--start-branch <branch>` to resume an existing branch with its history instead of forking a fresh branch off base; the control plane verifies the branch exists on the remote and fails closed if it does not.
140
+
138
141
  Repeatable `--uploaded-file <path>` flags attach local UTF-8 text files to the prompt. Uploaded file names come from the local basename; directory components are not sent.
139
142
 
140
143
  `--cold` is a deprecated no-op retained for backward compatibility. Sessions always start from a fresh sandbox (the warm sandbox pool was removed), so the flag has no effect.
package/dist/index.js CHANGED
@@ -2592,6 +2592,10 @@ async function createCommand(repoUrl, promptArg, options, command) {
2592
2592
  if (options.baseBranch !== void 0 && !baseBranch) {
2593
2593
  throw new CliError("user", "--base-branch must not be empty.");
2594
2594
  }
2595
+ const startBranch = options.startBranch?.trim();
2596
+ if (options.startBranch !== void 0 && !startBranch) {
2597
+ throw new CliError("user", "--start-branch must not be empty.");
2598
+ }
2595
2599
  const uploadedFiles = await resolveUploadedFileOptions(options.uploadedFile);
2596
2600
  const idempotencyKey = options.idempotencyKey ?? randomIdempotencyKey();
2597
2601
  const sessionIdempotencyKey = `${idempotencyKey}:session`;
@@ -2601,6 +2605,7 @@ async function createCommand(repoUrl, promptArg, options, command) {
2601
2605
  if (options.backend) body.agentRuntimeBackend = agentRuntimeBackend;
2602
2606
  if (options.reasoningEffort) body.reasoningEffort = options.reasoningEffort;
2603
2607
  if (baseBranch) body.baseBranch = baseBranch;
2608
+ if (startBranch) body.startBranch = startBranch;
2604
2609
  if (options.cold) body.cold = true;
2605
2610
  if (options.onboarding) body.onboarding = true;
2606
2611
  const sessionData = await apiFetch(config, "/api/sessions", {
@@ -2656,6 +2661,7 @@ async function createCommand(repoUrl, promptArg, options, command) {
2656
2661
  if (options.backend) output.agentRuntimeBackend = agentRuntimeBackend;
2657
2662
  if (options.reasoningEffort) output.reasoningEffort = options.reasoningEffort;
2658
2663
  if (baseBranch) output.baseBranch = baseBranch;
2664
+ if (startBranch) output.startBranch = startBranch;
2659
2665
  if (options.onboarding) output.onboarding = true;
2660
2666
  if (promptId) output.promptId = promptId;
2661
2667
  writeJson(output);
@@ -4329,7 +4335,10 @@ program.hook("preAction", (_thisCommand, actionCommand) => {
4329
4335
  applyColorEnvironment(getRuntimeOptions(actionCommand));
4330
4336
  });
4331
4337
  function addCreateOptions(cmd) {
4332
- return cmd.argument("<repo-url>", "Repository URL").argument("[prompt]", "Prompt to send, or '-' to read stdin").option("--model <model>", "Model to use").option("--backend <backend>", "Agent runtime backend: codex (default) or claude_code").option("--reasoning-effort <effort>", "Reasoning effort to use for models that support it").option("--base-branch <branch>", "Base branch to create the session against (defaults to the repo default branch)").option("--prompt-stdin", "Read prompt from stdin").option(
4338
+ return cmd.argument("<repo-url>", "Repository URL").argument("[prompt]", "Prompt to send, or '-' to read stdin").option("--model <model>", "Model to use").option("--backend <backend>", "Agent runtime backend: codex (default) or claude_code").option("--reasoning-effort <effort>", "Reasoning effort to use for models that support it").option("--base-branch <branch>", "Base branch to create the session against (defaults to the repo default branch)").option(
4339
+ "--start-branch <branch>",
4340
+ "Resume an existing branch with its history instead of forking a new one off base"
4341
+ ).option("--prompt-stdin", "Read prompt from stdin").option(
4333
4342
  "--uploaded-file <path>",
4334
4343
  "Attach a local text file to the prompt as uploadedFiles; repeat for multiple files",
4335
4344
  collectUploadedFileOption
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tryarcanist/cli",
3
- "version": "0.1.136",
3
+ "version": "0.1.138",
4
4
  "description": "CLI for Arcanist — create and manage coding agent sessions",
5
5
  "type": "module",
6
6
  "bin": {