https://github.com/shekohex/dotai
My AI Agents Home
https://github.com/shekohex/dotai
ai ai-agents claude-code gemini pi
Last synced: 8 days ago
JSON representation
My AI Agents Home
- Host: GitHub
- URL: https://github.com/shekohex/dotai
- Owner: shekohex
- Created: 2025-08-12T14:47:02.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2026-05-23T16:26:53.000Z (11 days ago)
- Last Synced: 2026-05-23T16:28:17.646Z (11 days ago)
- Topics: ai, ai-agents, claude-code, gemini, pi
- Language: HTML
- Homepage:
- Size: 37.6 MB
- Stars: 10
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-pi-coding-agent - shekohex-dotai
README
# AI Configuration Management
A unified configuration management system for AI tools including Claude Code and OpenCode. This repository synchronizes configuration files and AI instructions across different AI development environments.
## Table of Contents
- [Overview](#overview)
- [Prerequisites](#prerequisites)
- [Required Dependencies](#required-dependencies)
- [Installation Instructions](#installation-instructions)
- [macOS](#macos)
- [Linux (Ubuntu/Debian)](#linux-ubuntudebian)
- [Linux (CentOS/RHEL/Fedora)](#linux-centosrhelfedora)
- [Arch Linux](#arch-linux)
- [Windows](#windows)
- [Target Locations](#target-locations)
- [Configuration Files](#configuration-files)
- [Installation](#installation)
- [Features](#features)
- [Usage Examples](#usage-examples)
- [Troubleshooting](#troubleshooting)
- [Backup and Recovery](#backup-and-recovery)
## Overview
This system manages AI tool configurations by:
- Synchronizing the general `AI.md` instructions to tool-specific files
- Synchronizing MCP server configurations from a unified `mcp.json` to tool-specific formats
- Copying configuration directories to their expected locations
- Providing diff-based confirmation for file changes
- Supporting both Unix-like systems and Windows
## Prerequisites
### Required Dependencies
This system requires several command-line tools to function properly:
#### Core Dependencies (Required)
- **jq** - JSON processor for MCP configuration transformation
- **bash** (Unix/Linux/macOS) or **cmd** (Windows) - Shell execution
- **cmp** (Unix/Linux/macOS) or **fc** (Windows) - File comparison
#### Optional Dependencies (Recommended)
- **git** - Version control system (provides better diff output, fallback available)
- **rsync** (Unix/Linux/macOS) - Efficient directory synchronization (fallback to cp available)
- **diff** - Text comparison tool (fallback when git unavailable)
### Installation Instructions
#### macOS
Using [Homebrew](https://brew.sh/) (recommended):
```bash
# Install Homebrew if not already installed
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install required dependencies
brew install jq git
# rsync and diff are usually pre-installed on macOS
```
Using [MacPorts](https://www.macports.org/):
```bash
# Install required dependencies
sudo port install jq git
```
#### Linux (Ubuntu/Debian)
```bash
# Update package list
sudo apt update
# Install required dependencies
sudo apt install jq git rsync curl
```
#### Linux (CentOS/RHEL/Fedora)
**CentOS/RHEL:**
```bash
# Install EPEL repository (CentOS/RHEL)
sudo yum install epel-release
# Install required dependencies
sudo yum install jq git rsync curl
```
**Fedora:**
**Fedora:**
```bash
# Install required dependencies
sudo dnf install jq git rsync curl
```
#### Arch Linux
```bash
# Install required dependencies from official repositories
sudo pacman -S jq git rsync curl
```
#### Windows
**Using [Chocolatey](https://chocolatey.org/) (recommended):**
```powershell
# Install Chocolatey if not already installed
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
# Install required dependencies
choco install jq git curl
```
**Using [Scoop](https://scoop.sh/):**
```powershell
# Install Scoop if not already installed
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex
# Install required dependencies
scoop install jq git curl
```
**Manual Installation:**
1. **jq**: Download from [https://stedolan.github.io/jq/download/](https://stedolan.github.io/jq/download/)
2. **git**: Download from [https://git-scm.com/download/win](https://git-scm.com/download/win)
3. **curl**: Usually included with Windows 10+ or download from [https://curl.se/windows/](https://curl.se/windows/)
**Using Windows Subsystem for Linux (WSL):**
```bash
# Install WSL if not already installed (run in PowerShell as Administrator)
wsl --install
# Inside WSL, follow the Linux Ubuntu/Debian instructions above
```
#### Verification
After installation, verify all dependencies are working:
```bash
# Check core dependencies
jq --version
git --version
# Check optional dependencies (Unix/Linux/macOS)
rsync --version
diff --version
# Windows equivalents
fc /? # File compare (Windows)
xcopy /? # Directory copy (Windows)
```
## Target Locations
### Claude Code
- Configuration directory: `$HOME/.claude/` (Unix) / `%USERPROFILE%\.claude\` (Windows)
- Instructions file: `CLAUDE.md`
- MCP servers: Updated in `.claude.json` (maintains existing Claude format)
### OpenCode
- Configuration directory: `$HOME/.config/opencode/` (Unix) / `%USERPROFILE%\.config\opencode\` (Windows)
- Skills directory: `$HOME/.opencode/skill/` (Unix) / `%USERPROFILE%\.opencode\skill\` (Windows)
- Instructions file: `AGENTS.md`
- MCP servers: Updated in `opencode.jsonc` (transformed to OpenCode format)
## Configuration Files
### AI Instructions (AI.md)
Contains general AI development guidelines that are synchronized to:
- `CLAUDE.md` for Claude Code
- `AGENTS.md` for OpenCode
### MCP Server Configuration (mcp.json)
Unified MCP server configuration in Claude format that gets transformed and synchronized to:
**Claude Format (maintained):**
```json
{
"mcpServers": {
"context7": {
"type": "http",
"url": "https://mcp.context7.com/mcp"
},
"firecrawl": {
"command": "bunx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "your-key"
}
}
}
}
```
**OpenCode Format (transformed automatically):**
```json
{
"mcp": {
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp",
"enabled": true
},
"firecrawl": {
"type": "local",
"command": ["bunx", "-y", "firecrawl-mcp"],
"enabled": true,
"environment": {
"FIRECRAWL_API_KEY": "your-key"
}
}
}
}
```
## Installation
### Unix/macOS/Linux
```bash
./install.sh
```
### Windows
```cmd
install.bat
```
## Features
### Intelligent Synchronization
- Compares files before overwriting using git diff (with fallback to standard diff)
- Shows clear diffs when files differ
- Requests confirmation before making changes
- Creates timestamped backups of existing files
### Directory Management
- Uses rsync for efficient directory synchronization (Unix)
- Handles nested directory structures
- Preserves existing files not managed by this system
- Excludes `.git` directories from synchronization
### Error Handling
- Validates source files exist before attempting sync
- Creates target directories automatically
- Provides clear error messages and colored output
- Graceful fallbacks when optional tools are unavailable
## Legacy Tool Requirements
The following tools are required by the installation scripts as documented above. See the [Prerequisites](#prerequisites) section for detailed installation instructions.
### Unix/macOS/Linux
- **bash** - Shell execution
- **jq** - JSON processing for MCP configuration transformation
- **git** - For colored diff output (optional, falls back to diff)
- **rsync** - Efficient directory synchronization (optional, falls back to cp)
- **cmp** - File comparison
- **diff** - Text comparison fallback
OpenCode automatically loads skills from `~/.opencode/skill/`
### Windows
- **cmd** - Command interpreter
- **jq** - JSON processing for MCP configuration transformation
- **fc** - File comparison
- **git** - For diff output (optional)
- **xcopy** - Directory copying
## Usage Examples
### First-time Installation
Run the installer to set up all configurations:
```bash
./install.sh
```
### After Updating AI.md
Run the installer again to sync changes:
```bash
./install.sh
```
The installer will show you exactly what changed and ask for confirmation.
### After Updating MCP Configuration
Edit `mcp.json` with your MCP server configurations and run:
```bash
./install.sh
```
This will automatically:
1. Update the `mcpServers` section in `~/.claude/.claude.json`
2. Transform and update the `mcp` section in `~/.config/opencode/opencode.jsonc`
3. Create backups of existing configurations
4. Show diffs and ask for confirmation
### After Updating Skills
Edit skills in the `skills/` directory and run:
```bash
./install.sh
```
This will automatically sync skills to `~/.opencode/skill/` for OpenCode.
### Manual MCP Sync Only
To sync only MCP configurations without touching other files:
**Unix/macOS/Linux:**
```bash
./sync-mcp.sh
```
**Windows:**
```cmd
sync-mcp.bat
```
### Viewing Changes
The installer automatically shows diffs when files differ. Example output:
```
[WARN] Files differ for Claude instructions:
--- /home/user/.claude/CLAUDE.md 2024-01-01 12:00:00
+++ /home/user/.ai/AI.md 2024-01-01 12:05:00
@@ -1,3 +1,5 @@
# AI Instructions
- Follow coding standards
+- Use git for version control
+- Write clear commit messages
Replace Claude instructions with new version? (y/N):
```
## Troubleshooting
### Permission Errors
Ensure the script has execute permissions:
```bash
chmod +x install.sh
```
### Missing Target Directories
The installer creates directories automatically, but ensure you have write permissions to:
- `$HOME/.claude/`
- `$HOME/.config/opencode/`
### Git Not Available
The installer works without git but provides better diff output when git is available.
### Rsync Not Available
Directory synchronization falls back to `cp` when rsync is unavailable.
### jq Not Available
MCP synchronization requires `jq` for JSON processing. See the [Prerequisites](#prerequisites) section for detailed installation instructions for your platform.
### Invalid MCP Configuration
If you see "Invalid JSON in mcp.json", validate your JSON syntax:
```bash
jq empty mcp.json
```
### MCP Sync Script Not Executable
**Unix/macOS/Linux:**
Make the sync script executable:
```bash
chmod +x sync-mcp.sh
```
**Windows:**
Ensure the batch file is accessible and jq is in your PATH.
## Backup and Recovery
Backups are automatically created with timestamps:
- Format: `filename.backup.YYYYMMDD_HHMMSS`
- Location: Same directory as the original file
- Only created when files actually differ
To restore a backup:
```bash
cp ~/.claude/CLAUDE.md.backup.20240101_120000 ~/.claude/CLAUDE.md
```