You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: Complete guide and reference for integrating any tool, binary, or repository with Anyisland. Covers single-command bootstrap hooks, manifest specification (anyisland.json), install adapter scripts, and live pulse/daemon auto-registration.
4
+
---
5
+
6
+
# Anyisland Integration Skill
7
+
8
+
Use this skill when integrating any repository, service, or CLI tool with the **Anyisland** decentralized ecosystem.
9
+
10
+
---
11
+
12
+
## 1. Core Architecture Pattern
13
+
14
+
Anyisland enables a frictionless **one-command distribution model** for tools:
3. Anyisland reads the tool's `anyisland.json` manifest, prepares dependencies, executes the build pipeline, and symlinks the binary into the user's `PATH`.
24
+
25
+
---
26
+
27
+
## 2. Manifest Schema (`anyisland.json`)
28
+
29
+
Every integrating tool must include an `anyisland.json` at its repository root:
30
+
31
+
```json
32
+
{
33
+
"name": "your-tool-name",
34
+
"version": "1.0.0",
35
+
"description": "Short summary of what the tool does.",
36
+
"repository": "github.com/owner/your-tool-name",
37
+
"source_dir": "~/.your-tool-name/source",
38
+
"install_dir": "~/.local/bin",
39
+
"build": {
40
+
"steps": [
41
+
"bash install.sh"
42
+
],
43
+
"bin": "your-tool-name",
44
+
"toolchain": "go"
45
+
},
46
+
"runtime": {
47
+
"dependencies": [
48
+
"libtesseract-dev",
49
+
"libleptonica-dev"
50
+
],
51
+
"daemon": false,
52
+
"pulse": true
53
+
}
54
+
}
55
+
```
56
+
57
+
### Manifest Fields
58
+
-**`name`**: Tool binary and registry name (must match binary output).
59
+
-**`version`**: Semantic version string (e.g. `1.0.0`).
60
+
-**`build.steps`**: Sequential shell commands to compile or bundle the application.
61
+
-**`build.bin`**: Name or relative path of the produced executable.
62
+
-**`build.toolchain`**: Optional hint (`go`, `rust`, `node`, `python`, `flutter`, `c`).
63
+
-**`runtime.dependencies`**: OS packages or libraries required at runtime.
64
+
-**`runtime.pulse`**: Set `true` if the tool participates in Anyisland health/heartbeat pulses.
65
+
66
+
---
67
+
68
+
## 3. Tool `install.sh` Adapter Script
69
+
70
+
Include an `install.sh` in your repository root that handles both direct standalone execution and Anyisland invocation:
71
+
72
+
```bash
73
+
#!/bin/bash
74
+
set -e
75
+
76
+
# 1. Fallback: If run directly without Anyisland, delegate to Anyisland bootstrap
Copy file name to clipboardExpand all lines: docs/docs/distribution.md
+82-29Lines changed: 82 additions & 29 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,76 +4,129 @@ sidebar_position: 3
4
4
5
5
# Distribution & Integration
6
6
7
-
Anyisland allows developers to distribute their tools effortlessly and integrate them deeply into the user's sovereign environment.
7
+
Anyisland provides a zero-friction, platform-agnostic distribution mechanism for modern CLI tools and sovereign software. Tools integrating with Anyisland can provide users with an instant single-command install experience without requiring separate package manager setup.
The default and cleanest distribution method is the **Anyisland Universal Bootstrap Hook**. This allows end users to install your tool directly using a single curl command. The script bootstraps Anyisland (if not already present) and immediately delegates to building/installing your tool.
If the user already has Anyisland installed, they can also install your tool via:
30
+
```bash
31
+
anyisland install <owner/repo>
32
+
```
33
+
34
+
---
10
35
11
-
The manifest is the source of truth for Anyisland. Placing this file in your repository's root allows Anyisland to skip AI analysis and follow your explicit instructions.
36
+
## 2. Defining the Manifest (`anyisland.json`)
12
37
13
-
See the [**Manifest Specification**](./manifest-spec.md) for a detailed breakdown of all available fields and best practices.
38
+
Placing an `anyisland.json` in your repository's root tells Anyisland how to resolve runtime dependencies and build your project deterministically.
14
39
15
-
### Basic Schema
40
+
See the [**Manifest Specification**](./manifest-spec.md) for full field details.
-**`build.steps`**: An array of shell commands executed sequentially in the source root.
35
-
-**`build.bin`**: The relative path to the resulting executable after build steps finish.
36
-
-**`build.install_dir`***(Optional)*: An absolute path if you want to override the default `~/.anyisland/bin` location.
69
+
---
70
+
71
+
## 3. Tool `install.sh` Adapter Pattern
72
+
73
+
To give users maximum flexibility, your repository's local `install.sh` can act as an adapter that bootstraps through Anyisland when run standalone, and builds the binary when called inside an Anyisland cycle:
74
+
75
+
```bash
76
+
#!/bin/bash
77
+
set -e
78
+
79
+
# If run directly outside Anyisland, bootstrap via Anyisland
Anyisland is designed to be installed without root permissions, living entirely within the user's home directory.
3
+
Anyisland is designed to be installed without root permissions, living entirely within the user's home directory. It supports standalone installation as well as unified single-command installation for target tools.
4
4
5
-
## The Bootstrap Process
6
-
7
-
The standard installation uses a universal bootstrap script:
The script downloads the specific binary and executes it with the `self-install` flag. This transfers the installation logic from the ephemeral shell script to the robust Anyisland binary itself.
19
+
When a target repo is passed:
20
+
1. The script checks if Anyisland is installed/up-to-date and bootstraps it if necessary.
21
+
2. The script immediately executes `anyisland install <owner/repo>` to resolve dependencies and build the tool.
During the first installation, Anyisland generates a unique **Master Key** used for E2EE shell history and local vault encryption. This key is stored securely using the platform's native keyring (via the [PAL](../internal/pal/README.md)).
39
+
During the first installation, Anyisland generates a unique **Master Key** used for E2EE shell history and local vault encryption. This key is stored securely using the platform's native keyring (via the Platform Abstraction Layer).
0 commit comments