Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@ bun.lock
tsconfig.json
.mise.toml
dist/*
!dist/skillet-linux-x64-musl
!dist/skillet-linux-arm64-musl
!dist/sklt-linux-x64-musl
!dist/sklt-linux-arm64-musl
4 changes: 2 additions & 2 deletions .github/workflows/docker-image.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest

env:
IMAGE: ghcr.io/${{ github.repository_owner }}/skillet
IMAGE: ghcr.io/${{ github.repository_owner }}/sklt

steps:
- name: Checkout
Expand Down Expand Up @@ -49,7 +49,7 @@ jobs:
shell: bash
run: |
set -euo pipefail
docker buildx create --name skillet-builder --use || docker buildx use skillet-builder
docker buildx create --name sklt-builder --use || docker buildx use sklt-builder
docker buildx build \
--platform linux/amd64,linux/arm64 \
--tag "$IMAGE:${{ steps.vars.outputs.tag }}" \
Expand Down
2 changes: 1 addition & 1 deletion .mise.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ run = "mise run install && bun scripts/render-chocolatey-package.ts"
run = "mise run install && bun scripts/render-winget-manifest.ts"

[tasks.docker-smoke]
run = "mise run build -- --targets=linux-x64-musl,linux-arm64-musl && docker build --platform=linux/amd64 -t skillet:local . && docker run --rm --platform=linux/amd64 skillet:local --help"
run = "mise run build -- --targets=linux-x64-musl,linux-arm64-musl && docker build --platform=linux/amd64 -t sklt:local . && docker run --rm --platform=linux/amd64 sklt:local --help"

[tasks.build-npm]
run = "mise run install && bun scripts/build-npm-cli.ts"
Expand Down
14 changes: 7 additions & 7 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@ ARG TARGETARCH

RUN apk add --no-cache libstdc++ libgcc

COPY dist/skillet-linux-x64-musl /tmp/skillet-linux-x64-musl
COPY dist/skillet-linux-arm64-musl /tmp/skillet-linux-arm64-musl
COPY dist/sklt-linux-x64-musl /tmp/sklt-linux-x64-musl
COPY dist/sklt-linux-arm64-musl /tmp/sklt-linux-arm64-musl

RUN set -eux; \
case "$TARGETARCH" in \
amd64) cp /tmp/skillet-linux-x64-musl /usr/local/bin/skillet ;; \
arm64) cp /tmp/skillet-linux-arm64-musl /usr/local/bin/skillet ;; \
amd64) cp /tmp/sklt-linux-x64-musl /usr/local/bin/sklt ;; \
arm64) cp /tmp/sklt-linux-arm64-musl /usr/local/bin/sklt ;; \
*) echo "Unsupported TARGETARCH: $TARGETARCH" >&2; exit 1 ;; \
esac; \
chmod +x /usr/local/bin/skillet; \
rm -f /tmp/skillet-linux-x64-musl /tmp/skillet-linux-arm64-musl
chmod +x /usr/local/bin/sklt; \
rm -f /tmp/sklt-linux-x64-musl /tmp/sklt-linux-arm64-musl

ENTRYPOINT ["/usr/local/bin/skillet"]
ENTRYPOINT ["/usr/local/bin/sklt"]
CMD ["--help"]
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ Skillet installs, discovers, and updates `SKILL.md`-based skills across supporte
| Method | Command / Source | Status |
| --- | --- | --- |
| Binary release | Download from GitHub Releases | Planned |
| Homebrew | `brew install skillet` | Configured |
| Chocolatey | `choco install skillet` | Configured |
| winget | `winget install skillet` | Configured |
| Homebrew | `brew install sklt` | Configured |
| Chocolatey | `choco install sklt` | Configured |
| winget | `winget install echohello-dev.sklt` | Configured |
| npm / npx | `npx sklt ...` | Configured |
| Docker | `docker run ... skillet ...` | Configured |
| Docker | `docker run ... sklt ...` | Configured |
| Local dev | `mise run dev -- --help` | Available |

Current development workflow:
Expand All @@ -26,9 +26,9 @@ mise run dev -- --help
## CLI Usage

```bash
skillet --help
skillet find [query]
skillet init [directory]
sklt --help
sklt find [query]
sklt init [directory]
```

Implemented commands:
Expand Down
4 changes: 2 additions & 2 deletions docs/distribution/chocolatey.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ Generate package and publish:
```powershell
cd packaging/chocolatey
choco pack
choco push skillet.<version>.nupkg --source https://push.chocolatey.org/
choco push sklt.<version>.nupkg --source https://push.chocolatey.org/
```

User install command:

```powershell
choco install skillet
choco install sklt
```
16 changes: 8 additions & 8 deletions docs/distribution/docker.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,32 @@
# Docker Distribution

Skillet publishes a Linux musl-based container image with `skillet` as the entrypoint.
Skillet publishes a Linux musl-based container image with `sklt` as the entrypoint.

## Build Inputs

The image requires these release artifacts in `dist/`:

- `skillet-linux-x64-musl`
- `skillet-linux-arm64-musl`
- `sklt-linux-x64-musl`
- `sklt-linux-arm64-musl`

## Local Build and Test

```bash
mise run build -- --targets=linux-x64-musl,linux-arm64-musl
docker build --platform=linux/amd64 -t skillet:local .
docker run --rm skillet:local --help
docker build --platform=linux/amd64 -t sklt:local .
docker run --rm sklt:local --help
```

## Publish (GHCR)

```bash
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t ghcr.io/echohello-dev/skillet:<version> \
-t ghcr.io/echohello-dev/skillet:latest \
-t ghcr.io/echohello-dev/sklt:<version> \
-t ghcr.io/echohello-dev/sklt:latest \
--push .
```

Repository automation:

- `.github/workflows/docker-image.yaml` publishes `ghcr.io/<owner>/skillet:<version>` on release.
- `.github/workflows/docker-image.yaml` publishes `ghcr.io/<owner>/sklt:<version>` on release.
8 changes: 4 additions & 4 deletions docs/distribution/homebrew.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Skillet ships a Homebrew formula for direct `brew install` on macOS.
## Release Flow

1. Build release artifacts and checksums.
2. Render `packaging/homebrew/skillet.rb` from checksums.
2. Render `packaging/homebrew/sklt.rb` from checksums.
3. Publish GitHub release assets for the same version.
4. Push formula update to the tap repository.

Expand All @@ -19,13 +19,13 @@ mise run render-homebrew-formula -- --version <version>

The renderer expects:

- `dist/skillet-darwin-arm64`
- `dist/skillet-darwin-x64`
- `dist/sklt-darwin-arm64`
- `dist/sklt-darwin-x64`
- `dist/SHA256SUMS`

Install instructions for users:

```bash
brew tap echohello-dev/tap
brew install skillet
brew install sklt
```
4 changes: 2 additions & 2 deletions docs/distribution/winget.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,6 @@ mise run render-winget-manifest -- --version <version>
Validation and install checks (Windows):

```powershell
winget validate packaging/winget/<version>/echohello-dev.skillet.yaml
winget install echohello-dev.skillet
winget validate packaging/winget/<version>/echohello-dev.sklt.yaml
winget install echohello-dev.sklt
```
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2015/06/nuspec.xsd">
<metadata>
<id>skillet</id>
<id>sklt</id>
<version>0.0.0</version>
<title>skillet</title>
<title>sklt</title>
<authors>echohello-dev</authors>
<projectUrl>https://github.com/echohello-dev/skillet</projectUrl>
<packageSourceUrl>https://github.com/echohello-dev/skillet</packageSourceUrl>
Expand Down
10 changes: 5 additions & 5 deletions packaging/chocolatey/tools/chocolateyinstall.ps1
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
$ErrorActionPreference = 'Stop'

$packageName = 'skillet'
$packageName = 'sklt'
$toolsDir = Split-Path -Parent $MyInvocation.MyCommand.Definition
$binaryPath = Join-Path $toolsDir 'skillet.exe'
$url64 = 'https://github.com/echohello-dev/skillet/releases/download/v0.0.0/skillet-windows-x64.exe'
$checksum64 = '51cddefde243f0f27e501ca420d5e1d1b9cad548dc9884ea4052d2915afef179'
$binaryPath = Join-Path $toolsDir 'sklt.exe'
$url64 = 'https://github.com/echohello-dev/skillet/releases/download/v0.0.0/sklt-windows-x64.exe'
$checksum64 = 'a47150b22c46e54301a72c44964b4bb7d5437bc1c6d64e397b38ee10eb5f6c4d'

Get-ChocolateyWebFile -PackageName $packageName -FileFullPath $binaryPath -Url64bit $url64 -Checksum64 $checksum64 -ChecksumType64 'sha256'
Install-BinFile -Name 'skillet' -Path $binaryPath
Install-BinFile -Name 'sklt' -Path $binaryPath
2 changes: 1 addition & 1 deletion packaging/chocolatey/tools/chocolateyuninstall.ps1
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
$ErrorActionPreference = 'Stop'
Uninstall-BinFile -Name 'skillet'
Uninstall-BinFile -Name 'sklt'
24 changes: 0 additions & 24 deletions packaging/homebrew/skillet.rb

This file was deleted.

24 changes: 24 additions & 0 deletions packaging/homebrew/sklt.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
class Sklt < Formula
desc "Portable CLI for managing agent skills"
homepage "https://github.com/echohello-dev/skillet"
version "0.0.0"

on_arm do
url "https://github.com/echohello-dev/skillet/releases/download/v0.0.0/sklt-darwin-arm64"
sha256 "58bd50e1aeb91880d968b27b540e99008ba58d190ec9fb077f29953b0c5cbbba"
end

on_intel do
url "https://github.com/echohello-dev/skillet/releases/download/v0.0.0/sklt-darwin-x64"
sha256 "ed219039a3e8dfc82658ed2ebf765d8ad352dd9f32169786c34d2bb2a2497c78"
end

def install
artifact = Hardware::CPU.arm? ? "sklt-darwin-arm64" : "sklt-darwin-x64"
bin.install artifact => "sklt"
end

test do
assert_match "sklt/", shell_output("#{bin}/sklt --version")
end
end
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
PackageIdentifier: echohello-dev.skillet
PackageIdentifier: echohello-dev.sklt
PackageVersion: 0.0.0
Installers:
- Architecture: x64
InstallerType: exe
InstallerUrl: https://github.com/echohello-dev/skillet/releases/download/v0.0.0/skillet-windows-x64.exe
InstallerSha256: 51CDDEFDE243F0F27E501CA420D5E1D1B9CAD548DC9884EA4052D2915AFEF179
InstallerUrl: https://github.com/echohello-dev/skillet/releases/download/v0.0.0/sklt-windows-x64.exe
InstallerSha256: A47150B22C46E54301A72C44964B4BB7D5437BC1C6D64E397B38EE10EB5F6C4D
AppsAndFeaturesEntries:
- DisplayName: skillet
- DisplayName: sklt
Commands:
- skillet
- sklt
ManifestType: installer
ManifestVersion: 1.6.0
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
PackageIdentifier: echohello-dev.skillet
PackageIdentifier: echohello-dev.sklt
PackageVersion: 0.0.0
PackageLocale: en-US
Publisher: echohello-dev
PublisherUrl: https://github.com/echohello-dev
PublisherSupportUrl: https://github.com/echohello-dev/skillet/issues
Author: echohello-dev
PackageName: skillet
PackageName: sklt
PackageUrl: https://github.com/echohello-dev/skillet
License: MIT
ShortDescription: Portable CLI for managing agent skills.
Moniker: skillet
Moniker: sklt
Tags:
- cli
- skills
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
PackageIdentifier: echohello-dev.skillet
PackageIdentifier: echohello-dev.sklt
PackageVersion: 0.0.0
DefaultLocale: en-US
ManifestType: version
Expand Down
2 changes: 1 addition & 1 deletion scripts/render-chocolatey-package.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ function main(): void {
const files = renderChocolateyPackageFiles({ version, releaseUrlBase, checksumsByArtifact: checksums });

fs.mkdirSync(path.join(outputDir, "tools"), { recursive: true });
fs.writeFileSync(path.join(outputDir, "skillet.nuspec"), files.nuspec);
fs.writeFileSync(path.join(outputDir, "sklt.nuspec"), files.nuspec);
fs.writeFileSync(path.join(outputDir, "tools", "chocolateyinstall.ps1"), files.installScript);
fs.writeFileSync(path.join(outputDir, "tools", "chocolateyuninstall.ps1"), files.uninstallScript);
console.log(`Wrote Chocolatey package files to ${outputDir}`);
Expand Down
2 changes: 1 addition & 1 deletion scripts/render-homebrew-formula.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ function main(): void {
const args = process.argv.slice(2);
const version = readArg(args, "--version") ?? readVersionFromPackageJson();
const checksumsPath = path.resolve(readArg(args, "--checksums") ?? "dist/SHA256SUMS");
const outputPath = path.resolve(readArg(args, "--output") ?? "packaging/homebrew/skillet.rb");
const outputPath = path.resolve(readArg(args, "--output") ?? "packaging/homebrew/sklt.rb");
const releaseUrlBase =
readArg(args, "--release-url-base") ??
`https://github.com/echohello-dev/skillet/releases/download/v${version}`;
Expand Down
6 changes: 3 additions & 3 deletions scripts/render-winget-manifest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ function main(): void {
const files = renderWingetManifestFiles({ version, releaseUrlBase, checksumsByArtifact: checksums });

fs.mkdirSync(outputDir, { recursive: true });
fs.writeFileSync(path.join(outputDir, "echohello-dev.skillet.yaml"), files.versionManifest);
fs.writeFileSync(path.join(outputDir, "echohello-dev.skillet.installer.yaml"), files.installerManifest);
fs.writeFileSync(path.join(outputDir, "echohello-dev.skillet.locale.en-US.yaml"), files.localeManifest);
fs.writeFileSync(path.join(outputDir, "echohello-dev.sklt.yaml"), files.versionManifest);
fs.writeFileSync(path.join(outputDir, "echohello-dev.sklt.installer.yaml"), files.installerManifest);
fs.writeFileSync(path.join(outputDir, "echohello-dev.sklt.locale.en-US.yaml"), files.localeManifest);
console.log(`Wrote winget manifests to ${outputDir}`);
}

Expand Down
14 changes: 7 additions & 7 deletions src/build/targets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,37 +8,37 @@ export const RELEASE_TARGETS: BuildTarget[] = [
{
id: "darwin-arm64",
bunTarget: "bun-darwin-arm64",
artifactName: "skillet-darwin-arm64",
artifactName: "sklt-darwin-arm64",
},
{
id: "darwin-x64",
bunTarget: "bun-darwin-x64",
artifactName: "skillet-darwin-x64",
artifactName: "sklt-darwin-x64",
},
{
id: "windows-x64",
bunTarget: "bun-windows-x64",
artifactName: "skillet-windows-x64.exe",
artifactName: "sklt-windows-x64.exe",
},
{
id: "linux-x64-gnu",
bunTarget: "bun-linux-x64",
artifactName: "skillet-linux-x64-gnu",
artifactName: "sklt-linux-x64-gnu",
},
{
id: "linux-x64-musl",
bunTarget: "bun-linux-x64-musl",
artifactName: "skillet-linux-x64-musl",
artifactName: "sklt-linux-x64-musl",
},
{
id: "linux-arm64-gnu",
bunTarget: "bun-linux-arm64",
artifactName: "skillet-linux-arm64-gnu",
artifactName: "sklt-linux-arm64-gnu",
},
{
id: "linux-arm64-musl",
bunTarget: "bun-linux-arm64-musl",
artifactName: "skillet-linux-arm64-musl",
artifactName: "sklt-linux-arm64-musl",
},
];

Expand Down
Loading