The command line

Give your agent a library in one command.

Almost no two AI tools share a plugin format. All of them can run a shell command. So the fastest way to point your own AI at your photos is a small program it can call: install it, log in once with a token, and your agent has the whole library.

Install

One file, no dependencies.

It is about ten kilobytes of plain JavaScript and needs nothing but Node. There is no build step, no SDK, and nothing running in the background.

npm install -g https://dashboard.teamcapture.app/cli/teamcapture-cli.tgz

Then log in once on the machine your agent runs on. The token is read from standard input rather than typed as an argument, so it never lands in your shell history or in the process list.

teamcapture login --profile acme

You create the token yourself in the dashboard, under Agent access, and revoke it there the moment you want it gone.

The commands

Four verbs, and that is the whole tool.

  • ls — what is in the library. Filter by album, by tag, by approval state. Returns the facts about each photo, never the bytes.
  • search — ask in words. Every photo carries a written description of what is in it, so you can ask for “the bottle on a cedar table” instead of guessing a filename. The tool tells you plainly when it could not rank and fell back to newest-first, rather than handing you an ordered-looking list that is not.
  • pull — get one file. A signed link that expires, to the original, the web-sized copy or the colour-corrected one. A phone-native photo comes back as a JPEG, so your agent never receives a format it cannot open.
  • push — send the work back. A crop, a caption card, a summary. It is filed against the photo it came from, not dropped in a folder somewhere else.

In practice

What a job actually looks like.

Find the shot, fetch it, do the work, put it back. Four lines, and the agent never sees anything outside the workspace its token belongs to.

teamcapture search "bottles on a cedar table" --profile acme
teamcapture pull 9f3c... --out shot.jpg --profile acme
# your agent does its work on shot.jpg
teamcapture push 9f3c... crop.jpg --kind social_crop --profile acme

One token, one workspace

An agency runs five brands without them touching.

A token belongs to exactly one workspace, and a profile holds one token. Keep a profile per client and name it on every command; there is no shared mode and no way for a run against one brand to read another’s photos. Every call is recorded against the token that made it, so revoking one is a complete answer.

Why not a plugin

Because you will change model again.

A connector per vendor is a connector to maintain per vendor, and it makes you wait on us every time you switch. Claude, ChatGPT, something you wrote yourself, whatever comes next — they do not agree on plugins, but they all have a shell. If you would rather call the API directly, that is the same four operations over HTTP with the same token.

See what else it connects to.

Access

Point it at your own events.

Tell us what your events look like and what you would want an agent to do with the photos, and we will tell you whether this fits and what it costs.

Request access