# Stillport: Your photos, within reach.

> Stillport gives AI agents a CLI and an MCP server for Apple Photos, Google Photos Picker and local Google Takeout archives. Search natively, inspect metadata, and export only what the agent needs to see.

By Donovan Baney (@baney75). Page: https://dbaney.com/projects/stillport/

- **Price:** Free
- **Status:** Version 0.2.0
- **Runs on:** macOS, Windows and Linux (Apple Photos needs a Mac)
- **Built with:** TypeScript, Bun, MCP
- **License:** MIT
- **Source:** https://github.com/baney75/stillport
- **Documentation:** https://dbaney.com/projects/stillport/docs/ (Markdown: https://dbaney.com/projects/stillport/docs.md)

## Why I built it

An agent that can see your photos can help with a lot: finding the receipt from that trip, the whiteboard from class, the picture you meant to send. But giving it that access should never mean handing over the whole library or a password. Stillport is the careful version: native search, only the items you need, nothing edited or deleted.

## Three sources, one tool

On a Mac, Stillport asks Apple Photos to run its own search and exports a rendered copy or the original. For Google Photos it uses the supported Picker: you search and choose in Google's own interface, and the agent can retrieve only what you picked. For a Google Takeout archive, it builds a private local index of filenames, captions, dates and folders and leaves the archive where it is.

## Built for agents

Every command returns JSON by default, including errors, with stable exit codes and paged results. The MCP server exposes search, metadata, previews, exports and offline galleries, but not credential management or self-update. There is no hosted middleman, no telemetry and no AI API key.

## Find the right photo without handing over the library

- Search Apple Photos with its own native search engine, including people, places and text where Photos supports them.
- Let a person pick from Google Photos through Google's Picker, then retrieve only those items.
- Index an extracted Google Takeout archive locally without copying it.
- JSON output, bounded pages, clear exit codes and an MCP server, built for agents.
- Standalone binaries with checksum-verified install and update on macOS, Windows and Linux.

## Limits

Read-only by design - no editing or deletion. Google's Picker requires a person to choose the photos, and the macOS binaries are not notarized.

## Install

```
curl -fsSL https://raw.githubusercontent.com/baney75/stillport/main/install.sh | sh
```

## Questions and answers

### What is Stillport?

Stillport gives AI agents a CLI and an MCP server for Apple Photos, Google Photos Picker and local Google Takeout archives. Search natively, inspect metadata, and export only what the agent needs to see.

### Is Stillport free?

Yes. Stillport costs nothing, and its source code is on GitHub under the MIT license.

### How do I install Stillport?

On macOS or Linux, run the install script. It verifies the release's SHA-256 checksum and puts `stillport` in `~/.local/bin`. On Windows, a PowerShell installer picks x64 or ARM64 and needs no administrator rights.

### What does Stillport run on?

macOS, Windows and Linux. Apple Photos search needs a Mac. Any MCP client can use its MCP server.

### Can an agent edit or delete my photos with Stillport?

No. Stillport is read-only by design. Each export goes to a new private folder, and nothing is overwritten or uploaded. There is no telemetry and no hosted middleman.

### Does Stillport have limits?

Read-only by design - no editing or deletion. Google's Picker requires a person to choose the photos, and the macOS binaries are not notarized.

## Related projects

- [Waypost](https://dbaney.com/projects/waypost/): Waypost connects AI agents to Proton Mail, Drive and Calendar through a local CLI and MCP server. Reading is the default; sending and uploading stay off until you allow them, and every write needs confirmation.
- [VaultLink](https://dbaney.com/projects/vaultlink/): VaultLink opens an Obsidian vault in a browser or Chrome side panel, reached from your other devices over private Tailscale and protected by a pairing token.
- [Myelinate](https://dbaney.com/projects/myelinate/): An AI tutoring skill that teaches from your own course materials. It asks you to recall before it explains, coaches homework without doing the graded work for you, and runs as instructions for Claude Code, claude.ai or Codex. No API key or server required.
