Skip to content
Merged

Dev #17

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
3 changes: 3 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,9 @@ jobs:
path: artifacts
merge-multiple: true

- name: Copy install script to artifacts
run: cp install.sh artifacts/install.sh

- name: Generate checksums (SHA-256)
run: |
cd artifacts
Expand Down
32 changes: 23 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,24 +34,35 @@ Ships as a **single self-contained Rust binary** with an optional interactive [r

## Installation

### Prebuilt binary (recommended)
### One-line installer — Linux & macOS

Download the latest binary for your platform from [GitHub Releases](https://github.com/thinkgrid-labs/diffmind/releases):
```bash
curl -fsSL https://github.com/thinkgrid-labs/diffmind/releases/latest/download/install.sh | bash
```

Auto-detects your OS and CPU (Intel or Apple Silicon), downloads the right binary, and installs to `/usr/local/bin`. Pin a specific version:

```bash
VERSION=v0.6.0 curl -fsSL https://github.com/thinkgrid-labs/diffmind/releases/latest/download/install.sh | bash
```

### Windows

Download `diffmind-x86_64-pc-windows-msvc.zip` from [GitHub Releases](https://github.com/thinkgrid-labs/diffmind/releases), extract it, and place `diffmind.exe` on your `PATH`.

### Manual download

| Platform | Asset |
| ------------------- | ------------------------------------------- |
| macOS Apple Silicon | `diffmind-aarch64-apple-darwin.tar.gz` |
| macOS Intel | `diffmind-x86_64-apple-darwin.tar.gz` |
| Linux x86_64 | `diffmind-x86_64-unknown-linux-gnu.tar.gz` |
| Linux ARM64 | `diffmind-aarch64-unknown-linux-gnu.tar.gz` |
| macOS x86_64 | `diffmind-x86_64-apple-darwin.tar.gz` |
| macOS Apple Silicon | `diffmind-aarch64-apple-darwin.tar.gz` |
| Windows x86_64 | `diffmind-x86_64-pc-windows-msvc.zip` |

```bash
# Linux / macOS example
tar -xzf diffmind-x86_64-unknown-linux-gnu.tar.gz
tar -xzf diffmind-<target>.tar.gz
sudo mv diffmind /usr/local/bin/

# Verify
diffmind --version
```

Expand Down Expand Up @@ -304,4 +315,7 @@ MIT — see [LICENSE](LICENSE).

---

_Built by [Thinkgrid Labs](https://github.com/thinkgrid-labs). Code review should be private and fast._
✨ Support the Local-First Movement
If you believe code reviews should be private and fast, consider contributing to the diffmind core.

Built with ❤️ by Tech Lead, for Tech Leads.
2 changes: 1 addition & 1 deletion apps/tui-cli/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "diffmind"
version = "0.6.0"
version = "0.6.1"
edition = "2021"
description = "Local-first AI code review agent — powered by on-device inference"

Expand Down
100 changes: 100 additions & 0 deletions install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
#!/usr/bin/env bash
# diffmind installer
# Usage:
# curl -fsSL https://github.com/thinkgrid-labs/diffmind/releases/latest/download/install.sh | bash
#
# Options (env vars):
# VERSION — pin a specific release tag, e.g. VERSION=v0.6.0
# INSTALL_DIR — override install location (default: /usr/local/bin)

set -euo pipefail

REPO="thinkgrid-labs/diffmind"
BIN="diffmind"
INSTALL_DIR="${INSTALL_DIR:-/usr/local/bin}"
VERSION="${VERSION:-latest}"

# ── Detect platform ──────────────────────────────────────────────────────────

OS=$(uname -s)
ARCH=$(uname -m)

case "$OS" in
Darwin)
case "$ARCH" in
x86_64) TARGET="x86_64-apple-darwin" ;;
arm64|aarch64) TARGET="aarch64-apple-darwin" ;;
*) echo "error: unsupported macOS architecture: $ARCH" >&2; exit 1 ;;
esac
;;
Linux)
case "$ARCH" in
x86_64) TARGET="x86_64-unknown-linux-gnu" ;;
aarch64) TARGET="aarch64-unknown-linux-gnu" ;;
*) echo "error: unsupported Linux architecture: $ARCH" >&2; exit 1 ;;
esac
;;
*)
echo "error: unsupported OS '$OS'." >&2
echo " For Windows, download the .zip from:" >&2
echo " https://github.com/$REPO/releases/latest" >&2
exit 1
;;
esac

# ── Resolve download URL ─────────────────────────────────────────────────────

if [ "$VERSION" = "latest" ]; then
BASE_URL="https://github.com/$REPO/releases/latest/download"
else
BASE_URL="https://github.com/$REPO/releases/download/$VERSION"
fi

ARCHIVE="${BIN}-${TARGET}.tar.gz"
URL="${BASE_URL}/${ARCHIVE}"

# ── Download & extract ───────────────────────────────────────────────────────

TMP=$(mktemp -d)
trap 'rm -rf "$TMP"' EXIT

echo " Detected $OS / $ARCH → $TARGET"
echo " Fetching $URL"
echo ""

if ! curl -fSL --progress-bar "$URL" -o "$TMP/$ARCHIVE"; then
echo "" >&2
echo "error: download failed. Check that version '$VERSION' exists at:" >&2
echo " https://github.com/$REPO/releases" >&2
exit 1
fi

tar -xzf "$TMP/$ARCHIVE" -C "$TMP"

if [ ! -f "$TMP/$BIN" ]; then
echo "error: binary '$BIN' not found in archive" >&2
exit 1
fi

chmod +x "$TMP/$BIN"

# ── Install ──────────────────────────────────────────────────────────────────

if [ -w "$INSTALL_DIR" ]; then
mv "$TMP/$BIN" "$INSTALL_DIR/$BIN"
else
echo " Installing to $INSTALL_DIR (sudo required)"
sudo mv "$TMP/$BIN" "$INSTALL_DIR/$BIN"
fi

# ── Done ─────────────────────────────────────────────────────────────────────

echo ""
echo " ✓ diffmind installed → $INSTALL_DIR/$BIN"
echo ""
"$INSTALL_DIR/$BIN" --version
echo ""
echo " Next steps:"
echo " diffmind download # download AI model (one-time setup)"
echo " diffmind --branch main # review your current branch"
echo ""
2 changes: 1 addition & 1 deletion packages/core-engine/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "core-engine"
version = "0.6.0"
version = "0.6.1"
edition = "2021"
description = "diffmind shared AI engine core"

Expand Down
Loading