Tink installs and maintains repository-owned Agent Skills under
.agents/skills/. This is the Go implementation of the tink command.
On macOS or Linux:
curl -fsSL https://raw.githubusercontent.com/jon-devlapaz/tink-go/main/install.sh | shThe installer verifies the GitHub Release digest and exact binary version, then
places tink in ~/.local/bin. It requires curl, tar, and python3.
If ~/.local/bin is not already on your PATH, add it to your shell startup
file. For zsh:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrcConfirm the installation:
tink --versionTo inspect the installer before running it, download it first:
curl -fsSLO https://raw.githubusercontent.com/jon-devlapaz/tink-go/main/install.sh
less install.sh
sh install.shFrom the repository that should own the skills:
cd /path/to/your/project
tink init
tink skill checktink init creates .agents/skills/, installs the embedded manage-tink
skill, and prepares the home inventory at ~/.tink. It preserves unrelated
files and can be run again safely.
Optional setup:
# Also add maintainability guidance.
tink init --with-zen
# Also install skill-scout and skill-eval-loop from tink-skills.
tink init --with-tink-skillsSee every setup option with tink init --help.
tink inspect https://github.com/owner/repository
tink skill add owner/repository --skill skill-name
tink skill list
tink skill check
tink skill refresh skill-name
tink skill remove skill-nameRun tink --help or tink <command> --help for the complete command surface.
tink updateUpdates are downloaded from this repository's latest GitHub Release, verified, probed, and atomically published. Existing binary bytes are restored if the published candidate fails verification.
Remove only the executable:
rm "$HOME/.local/bin/tink"This intentionally leaves project-owned .agents/skills/ trees and the
~/.tink library/catalog untouched. Review those separately before deleting
them. Within a project, tink destroy removes only Tink-managed project
scaffolding and preserves guidance and unrelated .agents/ content.
The command name, user-facing behavior, and on-disk protocols match the frozen
Rust tink 1.0.0 contract. The compatibility corpus contains 168 external
binary-level scenarios.
- Rust repository:
jon-devlapaz/tink - Commit:
2b082b5032b6f6cef6ea301868c499a93b86552f - Reference version:
tink 1.0.0 - Darwin/arm64 reference SHA-256:
2d7b3ce6ff91f7ea8805caff40a476ec308aa2003d99b510423b0bc89d868b76 - Rust toolchain:
1.95.0 Cargo.lockSHA-256:8a59efe422e46b889aaf5364a6bbbfa1a38afb0c92c729ebb55953640b0ca52a- Frozen Rust
install.shSHA-256:92493e1f2d03974516ed2341bfa0cbb26ea2108162aff669125e5f1d4214b002
The baseline does not move without an explicit compatibility decision.
Build the candidate binary:
go build -o ./bin/tink ./cmd/tinkRun Go-native tests:
go test ./...Run the external conformance suite against the frozen Rust binary:
TINK_REFERENCE_BIN=/Users/jondev/dev/active/tink/target/debug/tink \
TINK_CANDIDATE_BIN="$PWD/bin/tink" \
TINK_ACCEPTANCE=/Users/jondev/dev/active/tink/ACCEPTANCE.md \
TINK_REQUIRE_EXTERNAL=1 \
go test ./conformanceThe required mode rejects a missing binary, an unpinned reference, identical reference and candidate executables, deferred scenarios, or anything less than the exact 168-row frozen acceptance set.
No remote repository, published artifact, or installed binary is required for local conformance work.