We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/steipete/Peekaboo'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
name: macOS CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
concurrency:
group: macos-ci-${{ github.ref }}
cancel-in-progress: true
env:
SWIFT_TOOLCHAIN_ID: swift-6.2-RELEASE
SWIFT_TOOLCHAIN_NAME: swift
SWIFT_TOOLCHAIN_URL: https://download.swift.org/swift-6.2-release/xcode/swift-6.2-RELEASE/swift-6.2-RELEASE-osx.pkg
jobs:
peekaboo-core:
name: PeekabooCore build & tests
runs-on: macos-latest
env:
PEEKABOO_INCLUDE_AUTOMATION_TESTS: "false"
RUN_AUTOMATION_TESTS: "false"
RUN_LOCAL_TESTS: "false"
steps:
- uses: actions/checkout@v4
- name: Checkout Tachikoma subrepo
uses: actions/checkout@v4
with:
repository: steipete/Tachikoma
ref: main
path: Tachikoma
- name: Remove phantom submodule metadata
run: |
rm -f .gitmodules
git config --local --remove-section submodule.Tachikoma || true
- name: Prepare Swift Argument Parser fork
run: |
sudo mkdir -p /Users/steipete/Projects
sudo chown $USER /Users/steipete
sudo mkdir -p /Users/steipete/Projects
sudo chown $USER /Users/steipete/Projects
if [ -d /Users/steipete/Projects/swift-argument-parser ]; then
cd /Users/steipete/Projects/swift-argument-parser
git fetch origin approachable-concurrency
git checkout approachable-concurrency
git pull --ff-only origin approachable-concurrency
else
git clone --branch approachable-concurrency --depth 1 https://github.com/steipete/swift-argument-parser.git /Users/steipete/Projects/swift-argument-parser
fi
- name: Cache SwiftPM (PeekabooCore)
uses: actions/cache@v4
with:
path: |
~/.swiftpm
~/.cache/org.swift.swiftpm
Core/PeekabooCore/.build
key: ${{ runner.os }}-spm-core-${{ hashFiles('Core/PeekabooCore/Package.resolved') }}
restore-keys: |
${{ runner.os }}-spm-core-
- name: Install Swift 6.2 toolchain
run: |
if [ ! -d "/Library/Developer/Toolchains/${SWIFT_TOOLCHAIN_ID}.xctoolchain" ]; then
curl -L "${SWIFT_TOOLCHAIN_URL}" -o /tmp/swift-toolchain.pkg
sudo installer -pkg /tmp/swift-toolchain.pkg -target /
fi
- name: Show Swift toolchain version
run: xcrun --toolchain ${SWIFT_TOOLCHAIN_NAME} swift --version
- name: Export Swift toolchain binary
run: |
echo "SWIFT_BIN=/Library/Developer/Toolchains/${SWIFT_TOOLCHAIN_ID}.xctoolchain/usr/bin/swift" >> "$GITHUB_ENV"
- name: Show Xcode version
run: xcodebuild -version
- name: Build PeekabooCore
working-directory: Core/PeekabooCore
run: |
"$SWIFT_BIN" build --configuration debug
- name: Run focused Swift tests
working-directory: Core/PeekabooCore
run: |
"$SWIFT_BIN" test --filter ScreenCaptureServiceFlowTests
peekaboo-cli:
name: Peekaboo CLI build & tests
runs-on: macos-latest
needs: peekaboo-core
env:
PEEKABOO_INCLUDE_AUTOMATION_TESTS: "false"
PEEKABOO_SKIP_AUTOMATION: "1"
steps:
- uses: actions/checkout@v4
- name: Checkout Tachikoma subrepo
uses: actions/checkout@v4
with:
repository: steipete/Tachikoma
ref: main
path: Tachikoma
- name: Remove phantom submodule metadata
run: |
rm -f .gitmodules
git config --local --remove-section submodule.Tachikoma || true
- name: Prepare Swift Argument Parser fork
run: |
sudo mkdir -p /Users/steipete/Projects
sudo chown $USER /Users/steipete
sudo mkdir -p /Users/steipete/Projects
sudo chown $USER /Users/steipete/Projects
if [ -d /Users/steipete/Projects/swift-argument-parser ]; then
cd /Users/steipete/Projects/swift-argument-parser
git fetch origin approachable-concurrency
git checkout approachable-concurrency
git pull --ff-only origin approachable-concurrency
else
git clone --branch approachable-concurrency --depth 1 https://github.com/steipete/swift-argument-parser.git /Users/steipete/Projects/swift-argument-parser
fi
- name: Cache SwiftPM (CLI)
uses: actions/cache@v4
with:
path: |
~/.swiftpm
~/.cache/org.swift.swiftpm
Apps/CLI/.build
key: ${{ runner.os }}-spm-cli-${{ hashFiles('Apps/CLI/Package.resolved') }}
restore-keys: |
${{ runner.os }}-spm-cli-
- name: Install Swift 6.2 toolchain
run: |
if [ ! -d "/Library/Developer/Toolchains/${SWIFT_TOOLCHAIN_ID}.xctoolchain" ]; then
curl -L "${SWIFT_TOOLCHAIN_URL}" -o /tmp/swift-toolchain.pkg
sudo installer -pkg /tmp/swift-toolchain.pkg -target /
fi
- name: Show Swift toolchain version
run: xcrun --toolchain ${SWIFT_TOOLCHAIN_NAME} swift --version
- name: Export Swift toolchain binary
run: |
echo "SWIFT_BIN=/Library/Developer/Toolchains/${SWIFT_TOOLCHAIN_ID}.xctoolchain/usr/bin/swift" >> "$GITHUB_ENV"
- name: Show Xcode version
run: xcodebuild -version
- name: Build CLI target
working-directory: Apps/CLI
run: |
"$SWIFT_BIN" build --configuration debug
- name: Run CLI unit tests (skip automation)
working-directory: Apps/CLI
run: |
"$SWIFT_BIN" test -Xswiftc -DPEEKABOO_SKIP_AUTOMATION
tachikoma:
name: Tachikoma build & tests
runs-on: macos-latest
needs: peekaboo-cli
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
steps:
- uses: actions/checkout@v4
- name: Checkout Tachikoma
uses: actions/checkout@v4
with:
repository: steipete/Tachikoma
ref: main
path: Tachikoma
- name: Remove phantom submodule metadata
run: |
rm -f .gitmodules
git config --local --remove-section submodule.Tachikoma || true
- name: Prepare Swift Argument Parser fork
run: |
sudo mkdir -p /Users/steipete/Projects
sudo chown $USER /Users/steipete
sudo mkdir -p /Users/steipete/Projects
sudo chown $USER /Users/steipete/Projects
if [ -d /Users/steipete/Projects/swift-argument-parser ]; then
cd /Users/steipete/Projects/swift-argument-parser
git fetch origin approachable-concurrency
git checkout approachable-concurrency
git pull --ff-only origin approachable-concurrency
else
git clone --branch approachable-concurrency --depth 1 https://github.com/steipete/swift-argument-parser.git /Users/steipete/Projects/swift-argument-parser
fi
- name: Cache SwiftPM (Tachikoma)
uses: actions/cache@v4
with:
path: |
~/.swiftpm
~/.cache/org.swift.swiftpm
Tachikoma/.build
key: ${{ runner.os }}-spm-tachikoma-${{ hashFiles('Tachikoma/Package.resolved') }}
restore-keys: |
${{ runner.os }}-spm-tachikoma-
- name: Install Swift 6.2 toolchain
run: |
if [ ! -d "/Library/Developer/Toolchains/${SWIFT_TOOLCHAIN_ID}.xctoolchain" ]; then
curl -L "${SWIFT_TOOLCHAIN_URL}" -o /tmp/swift-toolchain.pkg
sudo installer -pkg /tmp/swift-toolchain.pkg -target /
fi
- name: Show Swift toolchain version
run: xcrun --toolchain ${SWIFT_TOOLCHAIN_NAME} swift --version
- name: Export Swift toolchain binary
run: |
echo "SWIFT_BIN=/Library/Developer/Toolchains/${SWIFT_TOOLCHAIN_ID}.xctoolchain/usr/bin/swift" >> "$GITHUB_ENV"
- name: Show Xcode version
run: xcodebuild -version
- name: Build Tachikoma
working-directory: Tachikoma
run: |
"$SWIFT_BIN" build --configuration debug
- name: Run Tachikoma unit tests
working-directory: Tachikoma
run: |
"$SWIFT_BIN" test --filter unit
lint:
name: SwiftLint (core + CLI)
runs-on: macos-latest
needs: [peekaboo-cli, tachikoma]
steps:
- uses: actions/checkout@v4
- name: Install SwiftLint
run: brew install swiftlint
- name: Run SwiftLint with CI config
run: swiftlint --config .swiftlint-ci.yml