Files
claude-mem/docs/multi-platform-builds.md
T
thedotmack 598369e894 Initial release v3.3.8
- Hook system for customization
- Documentation and installation scripts
- Multi-platform support via GitHub releases
- Binaries available for Windows, Linux (x64/ARM64), macOS (Intel/Apple Silicon)

Generated with Claude Code via Happy
2025-09-06 19:34:53 +00:00

96 lines
2.4 KiB
Markdown

# Multi-Platform Build Guide
This project now supports building binaries for multiple platforms using Bun's cross-compilation capabilities.
## Supported Platforms
- **Windows x64**: `claude-mem.exe`
- **Linux x64**: `claude-mem-linux`
- **Linux ARM64**: `claude-mem-linux-arm64`
- **macOS ARM64**: `claude-mem-macos-arm64`
- **macOS x64**: `claude-mem-macos-x64`
## Building
### Build All Platforms
To build binaries for all supported platforms:
```bash
npm run build:multiplatform
```
This will create binaries in the `releases/binaries/` directory.
### Build for NPM Package
To build a complete npm package with all platform binaries:
```bash
npm run publish
```
This creates a package in `releases/npm-package/` that includes:
- Platform detection wrapper script
- All platform-specific binaries
- Hooks and configuration files
## How Platform Detection Works
The npm package includes a Node.js wrapper script (`claude-mem`) that:
1. Detects the current platform using `process.platform` and `process.arch`
2. Maps the platform to the appropriate binary filename
3. Executes the correct binary with all command-line arguments
### Platform Mapping
| Platform | Architecture | Binary Filename |
|----------|-------------|------------------|
| Windows | x64 | `claude-mem.exe` |
| Linux | x64 | `claude-mem-linux` |
| Linux | arm64/aarch64 | `claude-mem-linux-arm64` |
| macOS | arm64 | `claude-mem-macos-arm64` |
| macOS | x64 | `claude-mem-macos-x64` |
## Usage
After installation via npm, users can run:
```bash
npx claude-mem --help
```
The wrapper will automatically select and execute the correct binary for their platform.
## Troubleshooting
### Unsupported Platform Error
If you see an "Unsupported platform" error, check that your platform/architecture combination is in the supported list above.
### Binary Not Found Error
This indicates the platform detection worked, but the expected binary file is missing from the package. This shouldn't happen with properly built packages.
## Development
### Adding New Platforms
To add support for new platforms:
1. Add the platform to the `PLATFORMS` array in `scripts/build-multiplatform.sh`
2. Update the platform detection logic in `scripts/claude-mem-wrapper.js`
3. Update this documentation
### Testing Binaries
Test that a specific binary works:
```bash
# Test Linux binary
./releases/binaries/claude-mem-linux --help
# Test Windows binary (on Windows or with Wine)
./releases/binaries/claude-mem.exe --help
```