Introduction
get.tool is a simple, reliable way to publish and distribute tools and scripts. With permanent URLs and built-in versioning, you can share your work without worrying about broken links or version conflicts.
Quickstart
Get started with get.tool in three simple steps:
1. Install the CLI
curl -sS https://get.tool.ab0t.com/p/registry-tools/meta/install.sh | bash
Or install via npm:
npm install -g @abot/get-tool
2. Authenticate
get-tool auth login
This will open a browser window to authenticate your CLI. You can also use an API token:
export GETTOOL_TOKEN="gt_your_token_here"
3. Publish your first tool
# Create a simple tool
echo 'console.log("Hello from my tool!")' > my-tool.js
# Publish it
get-tool publish my-tool ./my-tool.js
Your tool is now available at:
https://get.tool.ab0t.com/p/my-tool/@latest/my-tool.js
Installation
macOS / Linux
curl -sS https://get.tool.ab0t.com/p/registry-tools/meta/install.sh | bash
npm
npm install -g @abot/get-tool
Manual Download
Download the binary for your platform from the releases page.
Verify installation: Run get-tool --version to confirm the CLI is installed correctly.
Core Concepts
Tools
A tool is a collection of files published under a unique name. Each tool has its own URL namespace and version history.
Versions
Every publish creates a new version. Versions are immutable once published. Use semantic versioning (e.g., 1.0.0) or custom tags.
Tags
Tags are mutable pointers to versions. The @latest tag always points to the most recent version. You can create custom tags like @stable or @beta.
URLs
Every file has a permanent URL following this pattern:
/p/{tool}/@{version}/{file}
| URL Pattern | Description | Mutable? |
|---|---|---|
/p/my-tool/@1.0.0/file.js |
Specific version | No |
/p/my-tool/@latest/file.js |
Latest version | Yes (pointer) |
/p/my-tool/@stable/file.js |
Custom tag | Yes (pointer) |
CLI Reference
Commands
| Command | Description |
|---|---|
get-tool auth login |
Authenticate with get.tool |
get-tool auth logout |
Clear authentication |
get-tool publish <name> <files> |
Publish a new version |
get-tool tag <name> <tag> <version> |
Create or update a tag |
get-tool list |
List your tools |
get-tool info <name> |
Show tool details |
get-tool delete <name> <version> |
Delete a version (if allowed) |
Publishing Options
get-tool publish my-tool ./dist/ \
--version 1.0.0 \
--description "My awesome tool" \
--readme ./README.md \
--tag stable
Version immutability: Once a version is published, it cannot be modified or overwritten. Choose your version numbers carefully.
URL Structure
All tools follow a predictable URL structure:
# Files
https://get.tool.ab0t.com/p/{tool}/@{version}/{file}
# Metadata
https://get.tool.ab0t.com/p/{tool}/meta.json
https://get.tool.ab0t.com/p/{tool}/meta/readme.md
https://get.tool.ab0t.com/p/{tool}/meta/llm.txt
Integrity (SRI)
Every file includes a Subresource Integrity hash for verification:
<script
src="https://get.tool.ab0t.com/p/my-tool/@1.0.0/script.js"
integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K..."
crossorigin="anonymous"
></script>
SRI hashes are available in the meta.json file for each version.
API Authentication
Authenticate API requests using a Bearer token:
curl -H "Authorization: Bearer gt_your_token_here" \
https://get.tool.ab0t.com/api/v1/tools
Create API tokens in your dashboard.
CI/CD Integration
Automate publishing with your CI/CD pipeline:
GitHub Actions
name: Publish to get.tool
on:
release:
types: [published]
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install get-tool CLI
run: curl -sS https://get.tool.ab0t.com/p/registry-tools/meta/install.sh | bash
- name: Publish
env:
GETTOOL_TOKEN: ${{ secrets.GETTOOL_TOKEN }}
run: |
get-tool publish my-tool ./dist/ \
--version ${{ github.event.release.tag_name }}