Skip to content
Merged
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
38 changes: 38 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,27 @@ jobs:
done
done

- name: Create platform tarballs
run: |
TAG=${{ steps.get_tag.outputs.TAG }}
for os in linux darwin windows; do
for arch in amd64 arm64; do
ext=""
if [ "$os" = "windows" ]; then
ext=".exe"
fi
staging="aict-${TAG}-${os}-${arch}"
mkdir -p "$staging/completions"
cp "aict-${os}-${arch}${ext}" "$staging/aict${ext}"
cp "aict-mcp-${os}-${arch}${ext}" "$staging/aict-mcp${ext}"
cp completions/aict.bash "$staging/completions/"
cp completions/aict.zsh "$staging/completions/"
cp LICENSE "$staging/"
tar czf "releases/aict-${TAG}-${os}-${arch}.tar.gz" "$staging"
rm -rf "$staging"
done
done

- name: Create checksums
run: |
cd releases
Expand Down Expand Up @@ -183,3 +204,20 @@ jobs:
name: releases
path: releases/
retention-days: 30

# Update Homebrew tap formula on new releases
update-brew:
needs: [release]
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Update Homebrew formula
uses: mislav/bump-homebrew-formula-action@v3
with:
formula-name: aict
homebrew-tap: synseqack/homebrew-aict
download-url: https://github.com/synseqack/aict/releases/download/${{ github.ref_name }}/aict-${{ github.ref_name }}-darwin-arm64.tar.gz
env:
COMMITTER_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }}
40 changes: 40 additions & 0 deletions Formula/aict.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# typed: false
# frozen_string_literal: true

class Aict < Formula
desc "CLI tools with XML/JSON output for AI agents"
homepage "https://github.com/synseqack/aict"
version "1.0.3"
license "MIT"

on_macos do
if Hardware::CPU.arm?
url "https://github.com/synseqack/aict/releases/download/v#{version}/aict-v#{version}-darwin-arm64.tar.gz"
sha256 "PLACEHOLDER"
elsif Hardware::CPU.intel?
url "https://github.com/synseqack/aict/releases/download/v#{version}/aict-v#{version}-darwin-amd64.tar.gz"
sha256 "PLACEHOLDER"
end
end

on_linux do
if Hardware::CPU.arm?
url "https://github.com/synseqack/aict/releases/download/v#{version}/aict-v#{version}-linux-arm64.tar.gz"
sha256 "PLACEHOLDER"
elsif Hardware::CPU.intel?
url "https://github.com/synseqack/aict/releases/download/v#{version}/aict-v#{version}-linux-amd64.tar.gz"
sha256 "PLACEHOLDER"
end
end

def install
bin.install "aict"
bin.install "aict-mcp"
bash_completion.install "completions/aict.bash" => "aict"
zsh_completion.install "completions/aict.zsh" => "_aict"
end

test do
assert_match "aict", shell_output("#{bin}/aict --help")
end
end
19 changes: 13 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,18 +50,25 @@ Every field is labeled. Paths are always absolute. Timestamps are Unix integers.

## Install

**Go install (recommended):**
### Homebrew (macOS)

```sh
```bash
brew tap synseqack/aict
brew install aict
```

This installs both `aict` and `aict-mcp` binaries, plus shell completions for bash and zsh.

### Go Install

```
go install github.com/synseqack/aict@latest
go install github.com/synseqack/aict/cmd/mcp@latest
```

**Pre-built binaries** — download from [Releases](https://github.com/synseqack/aict/releases) for Linux, macOS (Intel + Apple Silicon), and Windows.

**Build from source:**
### Build from Source

```sh
```
git clone https://github.com/synseqack/aict
cd aict
go build -o aict .
Expand Down
Loading