diff --git a/.github/release-please/release-please-config.main.json b/.github/release-please/release-please-config.main.json
index a198f090..7d4a2fd5 100644
--- a/.github/release-please/release-please-config.main.json
+++ b/.github/release-please/release-please-config.main.json
@@ -11,6 +11,10 @@
{
"type": "generic",
"path": "pkg/config/config.go"
+ },
+ {
+ "type": "generic",
+ "path": "INSTALL.md"
}
]
}
diff --git a/.github/release-please/release-please-config.release_branches.json b/.github/release-please/release-please-config.release_branches.json
index 94689a29..b1811085 100644
--- a/.github/release-please/release-please-config.release_branches.json
+++ b/.github/release-please/release-please-config.release_branches.json
@@ -10,6 +10,10 @@
{
"type": "generic",
"path": "pkg/config/config.go"
+ },
+ {
+ "type": "generic",
+ "path": "INSTALL.md"
}
]
}
diff --git a/INSTALL.md b/INSTALL.md
new file mode 100644
index 00000000..e043910b
--- /dev/null
+++ b/INSTALL.md
@@ -0,0 +1,254 @@
+# Installing otdfctl
+
+This guide will help you install **otdfctl** on your computer. Follow the steps for your operating system.
+
+## What is otdfctl?
+
+`otdfctl` is a command-line tool for working with OpenTDF. Once installed, you'll be able to run it from any folder on your computer.
+
+---
+
+## 📥 Installation Instructions
+
+
+For macOS Users
+
+#### Step 1: Download the Right Version
+
+First, you need to know which type of Mac you have:
+- **Apple Silicon (M1, M2, M3, etc.)**: Download the `arm64` version
+- **Intel Mac**: Download the `amd64` version
+
+**Don't know which one you have?** Open Terminal and type:
+```bash
+uname -m
+```
+- If it says `arm64`, you have Apple Silicon
+- If it says `x86_64`, you have an Intel Mac
+
+#### Step 2: Download and Install
+
+**For Apple Silicon Macs (M1/M2/M3):**
+```bash
+# Download the latest version
+curl -LO https://github.com/opentdf/otdfctl/releases/download/v0.28.0/otdfctl-0.28.0-darwin-arm64.tar.gz
+
+# Extract the file
+tar -xzf otdfctl-0.28.0-darwin-arm64.tar.gz
+
+# Create the directory if it doesn't exist
+sudo mkdir -p /usr/local/bin
+
+# Move it to a folder in your PATH
+sudo mv target/otdfctl-0.28.0-darwin-arm64 /usr/local/bin/otdfctl
+
+# Make it executable
+sudo chmod +x /usr/local/bin/otdfctl
+
+# Clean up the downloaded file
+rm otdfctl-0.28.0-darwin-arm64.tar.gz
+```
+
+**For Intel Macs:**
+```bash
+# Download the latest version
+curl -LO https://github.com/opentdf/otdfctl/releases/download/v0.28.0/otdfctl-0.28.0-darwin-amd64.tar.gz
+
+# Extract the file
+tar -xzf otdfctl-0.28.0-darwin-amd64.tar.gz
+
+# Create the directory if it doesn't exist
+sudo mkdir -p /usr/local/bin
+
+# Move it to a folder in your PATH
+sudo mv target/otdfctl-0.28.0-darwin-amd64 /usr/local/bin/otdfctl
+
+# Make it executable
+sudo chmod +x /usr/local/bin/otdfctl
+
+# Clean up the downloaded file
+rm otdfctl-0.28.0-darwin-amd64.tar.gz
+```
+
+> **Note:** You'll be asked for your password when using `sudo`. This is normal and required to install the tool.
+
+
+
+---
+
+
+For Linux Users
+
+#### Step 1: Download the Right Version
+
+Choose based on your system:
+- **Most modern PCs**: `amd64`
+- **Raspberry Pi or ARM devices**: `arm64` or `arm`
+
+**Not sure?** Run this command:
+```bash
+uname -m
+```
+
+#### Step 2: Download and Install
+
+**For amd64 (most common):**
+```bash
+# Download the latest version
+curl -LO https://github.com/opentdf/otdfctl/releases/download/v0.28.0/otdfctl-0.28.0-linux-amd64.tar.gz
+
+# Extract the file
+tar -xzf otdfctl-0.28.0-linux-amd64.tar.gz
+
+# Create the directory if it doesn't exist
+sudo mkdir -p /usr/local/bin
+
+# Move it to a folder in your PATH
+sudo mv target/otdfctl-0.28.0-linux-amd64 /usr/local/bin/otdfctl
+
+# Make it executable
+sudo chmod +x /usr/local/bin/otdfctl
+
+# Clean up the downloaded file
+rm otdfctl-0.28.0-linux-amd64.tar.gz
+```
+
+**For ARM64:**
+```bash
+# Download the latest version
+curl -LO https://github.com/opentdf/otdfctl/releases/download/v0.28.0/otdfctl-0.28.0-linux-arm64.tar.gz
+
+# Extract the file
+tar -xzf otdfctl-0.28.0-linux-arm64.tar.gz
+
+# Create the directory if it doesn't exist
+sudo mkdir -p /usr/local/bin
+
+# Move it to a folder in your PATH
+sudo mv target/otdfctl-0.28.0-linux-arm64 /usr/local/bin/otdfctl
+
+# Make it executable
+sudo chmod +x /usr/local/bin/otdfctl
+
+# Clean up the downloaded file
+rm otdfctl-0.28.0-linux-arm64.tar.gz
+```
+
+**For ARM (32-bit):**
+```bash
+# Download the latest version
+curl -LO https://github.com/opentdf/otdfctl/releases/download/v0.28.0/otdfctl-0.28.0-linux-arm.tar.gz
+
+# Extract the file
+tar -xzf otdfctl-0.28.0-linux-arm.tar.gz
+
+# Create the directory if it doesn't exist
+sudo mkdir -p /usr/local/bin
+
+# Move it to a folder in your PATH
+sudo mv target/otdfctl-0.28.0-linux-arm /usr/local/bin/otdfctl
+
+# Make it executable
+sudo chmod +x /usr/local/bin/otdfctl
+
+# Clean up the downloaded file
+rm otdfctl-0.28.0-linux-arm.tar.gz
+```
+
+
+
+---
+
+
+For Windows Users
+
+#### Step 1: Download the Right Version
+
+Most Windows computers use `amd64`. ARM versions are for Surface Pro X or other ARM-based Windows devices.
+
+#### Step 2: Download and Install
+
+1. **Download the file** for your system:
+ - For most PCs: [otdfctl-0.28.0-windows-amd64.zip](https://github.com/opentdf/otdfctl/releases/download/v0.28.0/otdfctl-0.28.0-windows-amd64.zip)
+ - For ARM devices: [otdfctl-0.28.0-windows-arm64.zip](https://github.com/opentdf/otdfctl/releases/download/v0.28.0/otdfctl-0.28.0-windows-arm64.zip)
+
+2. **Extract the ZIP file:**
+ - Right-click the downloaded file
+ - Select "Extract All..."
+ - Choose a location and create a folder: `%USERPROFILE%\otdfctl`
+ - The executable will be in this folder (you may need to navigate into a subfolder)
+
+3. **Add to PATH:**
+ - Press `Windows key` and search for "Environment Variables"
+ - Click "Edit environment variables for your account"
+ - In the "User variables" section at the top, find and select "Path", then click "Edit...". (If "Path" doesn't exist, click "New..." to create it).
+ - Click "New" and add the folder path where you extracted `otdfctl.exe` (e.g., `%USERPROFILE%\otdfctl`)
+ - Click "OK" on all windows
+
+4. **Restart your command prompt or PowerShell** for the changes to take effect.
+
+
+
+---
+
+## ✅ Verify Installation
+
+After installation, open a **new** terminal window and run:
+
+```bash
+otdfctl --version
+```
+
+You should see output like:
+```
+otdfctl version 0.28.0
+```
+
+If you see this, congratulations! 🎉 You've successfully installed otdfctl.
+
+---
+
+## 🔧 Troubleshooting
+
+### "command not found" or "otdfctl is not recognized"
+
+**On macOS/Linux:**
+- Make sure you opened a **new** terminal window after installation
+- Verify the file is in `/usr/local/bin/` by running: `ls -l /usr/local/bin/otdfctl`
+- Check if `/usr/local/bin` is in your PATH: `echo $PATH`
+
+**On Windows:**
+- Make sure you opened a **new** Command Prompt or PowerShell window
+- Verify the PATH was added correctly in Environment Variables
+- Try searching for `otdfctl.exe` in File Explorer to confirm where it's located
+
+### "Permission denied" on macOS/Linux
+
+If you get a permission error, make sure the file is executable:
+```bash
+sudo chmod +x /usr/local/bin/otdfctl
+```
+
+### macOS: "otdfctl cannot be opened because the developer cannot be verified"
+
+This is a security feature on macOS. To allow it:
+```bash
+sudo xattr -d com.apple.quarantine /usr/local/bin/otdfctl
+```
+
+---
+
+## 📚 Next Steps
+
+Now that otdfctl is installed, you can:
+- Run `otdfctl --help` to see available commands
+- Visit the [documentation](https://github.com/opentdf/otdfctl) for usage examples
+- Configure your first profile with `otdfctl profile create `
+
+---
+
+## 🔄 Updating otdfctl
+
+To update to a newer version, simply repeat the installation steps with the new version number. The new version will replace the old one.
+
+To check for new releases, visit: https://github.com/opentdf/otdfctl/releases
diff --git a/README.md b/README.md
index 15e3c0d5..e40bda1c 100644
--- a/README.md
+++ b/README.md
@@ -17,6 +17,8 @@ The main goals are to:
## Usage
+See [INSTALL.md](INSTALL.md) for installation instructions.
+
The CLI is configured via profiles. Use `otdfctl profile create ` (and optionally `--set-default`) to define how the CLI should connect to your platform instance.
Load up the platform (see its [README](https://github.com/opentdf/platform?tab=readme-ov-file#run) for instructions).