Merge OrbitOS into project — one install, everything ready

- Added 15 OrbitOS skills (bundled in skills/orbitos/)
- Added vault structure templates (views, templates, prompts)
- Added install.sh (macOS + Linux)
- Removed references/orbitos-skills.md (no longer needed)
- Updated README: 30 skills total, unified install flow

Total: 9 mm* + 6 dependencies + 15 orbitos = 30 skills
This commit is contained in:
Kunthawat Greethong
2026-07-02 10:13:46 +07:00
parent 7bf147069e
commit ddac3f187c
45 changed files with 2695 additions and 197 deletions

201
install.sh Executable file
View File

@@ -0,0 +1,201 @@
#!/bin/bash
# moreminimore-service-system installer
# Works on macOS and Linux
# Usage: bash install.sh [--vault-path PATH] [--skip-vault] [--skip-skills]
set -euo pipefail
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
# Defaults
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
VAULT_PATH="${VAULT_PATH:-$HOME/vault}"
HERMES_HOME="${HERMES_HOME:-$HOME/.hermes}"
SKIP_VAULT=false
SKIP_SKILLS=false
# Parse args
while [[ $# -gt 0 ]]; do
case $1 in
--vault-path) VAULT_PATH="$2"; shift 2 ;;
--skip-vault) SKIP_VAULT=true; shift ;;
--skip-skills) SKIP_SKILLS=true; shift ;;
--help|-h)
echo "Usage: bash install.sh [OPTIONS]"
echo ""
echo "Options:"
echo " --vault-path PATH Vault location (default: ~/vault)"
echo " --skip-vault Don't copy vault templates"
echo " --skip-skills Don't copy skills"
echo " --help Show this help"
exit 0
;;
*) echo "Unknown option: $1"; exit 1 ;;
esac
done
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo " moreminimore-service-system installer"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo " Vault: $VAULT_PATH"
echo " Hermes: $HERMES_HOME"
echo ""
# Detect OS
OS="$(uname -s)"
case "$OS" in
Darwin) PLATFORM="macos" ;;
Linux) PLATFORM="linux" ;;
*) echo -e "${RED}Unsupported OS: $OS${NC}"; exit 1 ;;
esac
echo -e "${GREEN}✓ Detected: $PLATFORM${NC}"
# ─── 1. Install skills ───────────────────────────────────────────
if [ "$SKIP_SKILLS" = false ]; then
echo ""
echo "── Installing skills ──"
SKILLS_DIR="$HERMES_HOME/skills"
mkdir -p "$SKILLS_DIR"
# mm* skills (9)
for skill_dir in "$SCRIPT_DIR"/skills/mm-*/; do
[ -d "$skill_dir" ] || continue
skill_name=$(basename "$skill_dir")
cp -r "$skill_dir" "$SKILLS_DIR/"
echo -e " ${GREEN}${NC} $skill_name"
done
# Dependency skills (6)
for skill in content-writer geo-optimizer post-formatter hook-generator graphic-designer; do
src="$SCRIPT_DIR/skills/$skill"
if [ -d "$src" ]; then
cp -r "$src" "$SKILLS_DIR/"
echo -e " ${GREEN}${NC} $skill (dependency)"
fi
done
# xurl
if [ -d "$SCRIPT_DIR/skills/xurl" ]; then
mkdir -p "$SKILLS_DIR/social-media"
cp -r "$SCRIPT_DIR/skills/xurl" "$SKILLS_DIR/social-media/"
echo -e " ${GREEN}${NC} xurl (dependency)"
fi
# OrbitOS skills (15)
for skill_dir in "$SCRIPT_DIR"/skills/orbitos/*/; do
[ -d "$skill_dir" ] || continue
skill_name=$(basename "$skill_dir")
cp -r "$skill_dir" "$SKILLS_DIR/"
echo -e " ${GREEN}${NC} $skill_name (orbitos)"
done
echo -e "${GREEN}✓ All skills installed${NC}"
else
echo -e "${YELLOW}⏭ Skipping skills${NC}"
fi
# ─── 2. Setup vault ──────────────────────────────────────────────
if [ "$SKIP_VAULT" = false ]; then
echo ""
echo "── Setting up vault ──"
mkdir -p "$VAULT_PATH"
# Copy vault structure (don't overwrite existing files)
for dir in 00_Inbox 10_Daily 20_Projects 30_Research 40_Wiki 50_Resources 60_Articles 90_Plans 99_System; do
src="$SCRIPT_DIR/vault-structure/$dir"
if [ -d "$src" ]; then
mkdir -p "$VAULT_PATH/$dir"
# Copy files that don't exist
find "$src" -type f | while read -r file; do
rel="${file#$src/}"
dest="$VAULT_PATH/$dir/$rel"
if [ ! -f "$dest" ]; then
mkdir -p "$(dirname "$dest")"
cp "$file" "$dest"
fi
done
echo -e " ${GREEN}${NC} $dir/"
fi
done
# Copy root vault files (don't overwrite)
for file in .hermes.md AGENTS.md .gitignore; do
src="$SCRIPT_DIR/vault-structure/$file"
dest="$VAULT_PATH/$file"
if [ -f "$src" ] && [ ! -f "$dest" ]; then
cp "$src" "$dest"
echo -e " ${GREEN}${NC} $file"
fi
done
# Copy views (don't overwrite)
if [ -d "$SCRIPT_DIR/vault-structure/views" ]; then
mkdir -p "$VAULT_PATH/views"
cp -n "$SCRIPT_DIR/vault-structure/views/"*.yml "$VAULT_PATH/views/" 2>/dev/null || true
echo -e " ${GREEN}${NC} views/"
fi
# Copy .obsidian config (don't overwrite)
if [ -d "$SCRIPT_DIR/vault-structure/.obsidian" ]; then
mkdir -p "$VAULT_PATH/.obsidian"
cp -n "$SCRIPT_DIR/vault-structure/.obsidian/"*.json "$VAULT_PATH/.obsidian/" 2>/dev/null || true
echo -e " ${GREEN}${NC} .obsidian/"
fi
echo -e "${GREEN}✓ Vault structure ready${NC}"
else
echo -e "${YELLOW}⏭ Skipping vault${NC}"
fi
# ─── 3. Setup config ─────────────────────────────────────────────
echo ""
echo "── Setting up config ──"
CONFIG_FILE="$VAULT_PATH/99_System/clients-config.json"
CONFIG_TEMPLATE="$SCRIPT_DIR/config/clients-config.template.json"
if [ ! -f "$CONFIG_FILE" ]; then
if [ -f "$CONFIG_TEMPLATE" ]; then
mkdir -p "$VAULT_PATH/99_System"
cp "$CONFIG_TEMPLATE" "$CONFIG_FILE"
echo -e " ${GREEN}${NC} clients-config.json created from template"
echo -e " ${YELLOW}⚠ Edit $CONFIG_FILE to add credentials${NC}"
fi
else
echo -e " ${GREEN}${NC} clients-config.json already exists"
fi
# ─── 4. Make scripts executable ──────────────────────────────────
echo ""
echo "── Scripts ──"
chmod +x "$SCRIPT_DIR/scripts/"*.sh 2>/dev/null || true
chmod +x "$SCRIPT_DIR/scripts/"*.py 2>/dev/null || true
echo -e " ${GREEN}${NC} Scripts are executable"
# ─── Done ────────────────────────────────────────────────────────
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo -e " ${GREEN}✓ Installation complete!${NC}"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo " Skills: $HERMES_HOME/skills/"
echo " Vault: $VAULT_PATH/"
echo " Config: $CONFIG_FILE"
echo ""
echo " Next steps:"
echo " 1. Edit $CONFIG_FILE with your credentials"
echo " 2. Run: mm idea: [topic] to start"
echo ""