@axelgar/opentree 1.0.2 → 1.1.0

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.
Files changed (4) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +54 -0
  3. package/README.md +55 -2
  4. package/package.json +8 -6
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Àxel García Roigé
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/NOTICE ADDED
@@ -0,0 +1,54 @@
1
+ opentree — third-party notices
2
+ ==============================
3
+
4
+ opentree itself is distributed under the MIT Licence; see LICENSE. This file
5
+ records the third-party names, marks and code that opentree touches, and the
6
+ rights it does not claim in them.
7
+
8
+
9
+ Trade marks
10
+ -----------
11
+
12
+ opentree drives coding agents it did not write. It draws each one under that
13
+ agent's own name, wordmark and brand colour so that the agent you are talking
14
+ to is identifiable at a glance, and those wordmarks are reproduced as terminal
15
+ text in pkg/config/agents.go, transcribed from each tool's own splash screen.
16
+
17
+ opencode "opencode", its wordmark and the colour #CFCECD are marks of
18
+ the opencode project.
19
+
20
+ Claude Code "Anthropic", "Claude", "Claude Code", the Claude mark and
21
+ the colour #D97757 are marks of Anthropic PBC.
22
+
23
+ GitHub Copilot "GitHub", "Copilot", "GitHub Copilot", the Copilot mark and
24
+ the colour #A371F7 are marks of GitHub, Inc.
25
+
26
+ Gemini CLI "Google", "Gemini", "Gemini CLI", the Gemini sparkle and the
27
+ colour #4285F4 are marks of Google LLC.
28
+
29
+ All trade marks, service marks, trade names and logos are the property of their
30
+ respective owners. They appear here only to identify the tools opentree can
31
+ drive, descriptively and accurately, and no claim of any right in them is made
32
+ or implied.
33
+
34
+ opentree is an independent project. It is not affiliated with, sponsored by,
35
+ endorsed by or otherwise connected to any of the owners named above; none of
36
+ them has reviewed or approved it, and its MIT licence grants no rights in
37
+ anyone's marks.
38
+
39
+ If you own one of these marks and would prefer opentree did not reproduce it,
40
+ open an issue at https://github.com/axelgar/opentree/issues and it will be
41
+ changed.
42
+
43
+
44
+ Third-party code
45
+ ----------------
46
+
47
+ opentree redistributes no code belonging to the projects above. The one adapter
48
+ it needs — @agentclientprotocol/claude-agent-acp, which bridges Claude Code onto
49
+ the Agent Client Protocol — is fetched from npm when the user asks for it and
50
+ installed under ~/.opentree/tools, under its own licence. `opentree uninstall`
51
+ removes that directory again.
52
+
53
+ The Go modules opentree links against are listed in go.mod and carry their own
54
+ licences.
package/README.md CHANGED
@@ -60,6 +60,16 @@ sudo mv opentree /usr/local/bin/
60
60
  go install github.com/axelgar/opentree/cmd/opentree@latest
61
61
  ```
62
62
 
63
+ ### Uninstalling
64
+
65
+ ```bash
66
+ opentree uninstall
67
+ ```
68
+
69
+ Removes what opentree wrote into your home directory: the agent adapters under `~/.opentree/tools` (a few hundred megabytes each), the record of approved setup and run commands, the shell completion script and the global config file. It lists all of it with sizes and asks before removing anything — `--dry-run` lists and stops, `--yes` answers the question from a script.
70
+
71
+ It never touches a repository. The worktrees under `<repo>/.opentree` are your own work in progress, and `opentree delete <branch>` is what removes those. The binary belongs to whichever of brew, npm or `go install` put it there, so the command that removes it is printed at the end.
72
+
63
73
  ## Quick Start
64
74
 
65
75
  ```bash
@@ -248,7 +258,7 @@ is queued rather than refused.
248
258
  themselves, so having the binary is the whole setup. Claude Code is reached
249
259
  through the `claude-agent-acp` adapter, which opentree installs on request into
250
260
  `~/.opentree/tools` rather than your global npm root — press `A` in the
251
- dashboard, pick Claude Code, and it offers the download (303MB, needs `node`).
261
+ dashboard, pick Claude Code, and it offers the download (340MB, needs `node`).
252
262
 
253
263
  Those four are the whole list. opentree drives agents over ACP and nothing else,
254
264
  so an agent without an ACP server has no way in — if one ships support, it
@@ -639,6 +649,30 @@ opentree delete feat/add-dark-mode
639
649
 
640
650
  ## Troubleshooting
641
651
 
652
+ ### Start here: `opentree doctor`
653
+
654
+ ```bash
655
+ opentree doctor
656
+ ```
657
+
658
+ Prints what opentree can see — its own version, the versions of git, tmux, gh
659
+ and node, which config file it resolved and what it says, whether this
660
+ repository's setup commands are approved, where state and sockets live, and
661
+ what each workspace's chat is doing. Everything it does is a read, so it is
662
+ safe to run and safe to paste into an issue.
663
+
664
+ If a problem needs reproducing rather than describing, point opentree at a log
665
+ first:
666
+
667
+ ```bash
668
+ OPENTREE_LOG=/tmp/opentree.log opentree
669
+ ```
670
+
671
+ An environment variable rather than a flag, because the interesting failures
672
+ happen inside `opentree chat`, which a tmux window starts rather than you — and
673
+ the variable is inherited by every process opentree launches. Off by default.
674
+ The file holds branch names, paths and session ids, and is written `0600`.
675
+
642
676
  ### "Error: not a git repository"
643
677
 
644
678
  opentree must be run from inside a git repository. Navigate to your project root first.
@@ -711,12 +745,31 @@ go build -o opentree ./cmd/opentree
711
745
 
712
746
  ### Architecture
713
747
 
714
- See [PLAN.md](PLAN.md) for detailed architecture documentation.
748
+ `cmd/opentree` is the CLI surface; `pkg/` is where the work happens.
749
+
750
+ | package | what it owns |
751
+ | --- | --- |
752
+ | `tui` | the dashboard: the workspace list, the Skills and Servers tabs |
753
+ | `chat` | the conversation view, and the control socket the dashboard reaches it through |
754
+ | `acp` | the Agent Client Protocol client — the agent subprocess and its stdio |
755
+ | `workspace` | a workspace's lifecycle, over the four below it |
756
+ | `worktree` | git worktrees and branches |
757
+ | `tmux` | sessions and windows |
758
+ | `state` | `state.json`, shared between the dashboard and every chat |
759
+ | `github` | `gh`, for PRs, issues and CI status |
760
+ | `bootstrap` | seeding a worktree, running its setup, and the trust gate over those commands |
761
+ | `skills` | propagating agent skills into worktrees |
762
+ | `config` | `opentree.toml` and the agent registry |
763
+ | `notify`, `diag`, `ui`, `fsutil`, `gitutil` | the small shared pieces |
715
764
 
716
765
  ## License
717
766
 
718
767
  MIT License - see [LICENSE](LICENSE) for details.
719
768
 
769
+ ## Trademarks
770
+
771
+ opentree draws each agent it drives — opencode, Claude Code, GitHub Copilot and Gemini CLI — under that agent's own wordmark and brand colour, so you can see at a glance which one you are talking to. Those marks belong to their respective owners. opentree is an independent project and is not affiliated with, sponsored by or endorsed by any of them. See [NOTICE](NOTICE).
772
+
720
773
  ## Acknowledgments
721
774
 
722
775
  - Inspired by [Conductor.build](https://conductor.build) by Sahil Lavingia
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axelgar/opentree",
3
- "version": "1.0.2",
3
+ "version": "1.1.0",
4
4
  "description": "Git worktree manager CLI for orchestrating parallel AI coding sessions",
5
5
  "repository": {
6
6
  "type": "git",
@@ -12,13 +12,15 @@
12
12
  "opentree": "bin/opentree"
13
13
  },
14
14
  "files": [
15
- "bin/opentree"
15
+ "bin/opentree",
16
+ "LICENSE",
17
+ "NOTICE"
16
18
  ],
17
19
  "optionalDependencies": {
18
- "@axelgar/opentree-linux-x64": "1.0.2",
19
- "@axelgar/opentree-linux-arm64": "1.0.2",
20
- "@axelgar/opentree-darwin-x64": "1.0.2",
21
- "@axelgar/opentree-darwin-arm64": "1.0.2"
20
+ "@axelgar/opentree-linux-x64": "1.1.0",
21
+ "@axelgar/opentree-linux-arm64": "1.1.0",
22
+ "@axelgar/opentree-darwin-x64": "1.1.0",
23
+ "@axelgar/opentree-darwin-arm64": "1.1.0"
22
24
  },
23
25
  "engines": {
24
26
  "node": ">=18"