Claude Code plugin

The words and the picture, at the timestamp you care about.

Someone attaches a two-minute screen recording to a bug ticket. Somewhere in it is the moment the thing breaks. inpoint pulls the ticket's attachments into a folder, transcribes the videos on your machine, and hands you the frames from any stretch of the timeline, each labelled with what was being said.

Nothing uploaded Apple speech or Whisper, local MIT
00:01:23.500 bug-repro.mp4
00:01:12.040so I add the item and go to checkout
00:01:23.500and right here the total just goes blank
00:01:31.880refreshing doesn't bring it back either
How it works

Three steps, one ticket key.

Ask Claude to grab the assets from a ticket and it runs the whole chain. Each step is also a plain command you can run yourself.

01 · Harvest

Download every attachment

Images, videos, audio and files land in a per-ticket folder on your Desktop, with a manifest and a readable summary of the ticket.

inpoint jira fetch ISP-482
02 · Transcribe

Whisper, on your machine

Word-level timestamps in JSON, SRT, VTT and plain text. Non-English audio also gets an English translation written alongside.

inpoint transcribe ISP-482
03 · Frames

Stills from any moment

One timestamp, a list, a range every N seconds, or every scene change. With a transcript present, each frame is annotated with what was said.

inpoint frames bug-repro.mp4 \
  --range 1:20-1:40 --every 2s --sheet
Two ways in

Let Claude drive, or drive it yourself.

Claude drives it

The bundled skill teaches Claude Code the full flow. It harvests, transcribes, extracts frames and reads the result back to you. If you have the Claude in Chrome extension it can use your logged-in browser, so no token is stored.

Grab the assets from ISP-482 and tell me what's in the video.

You drive it

A local web page for scrubbing by hand. Drop a video, get a transcript, click a line to jump there, mark in and out, extract frames, download the lot as a zip.

inpoint serve --open
iospace←→⟦⟧

Mark in and out, play, step one frame, or snap the range to a transcript line.

The folder

Everything for a ticket in one place.

Harvests are shared state on disk. A second Claude session, another terminal, or the web UI all see the same library. Run inpoint library to list every ticket and what has been done to it.

~/Desktop/ISP/ISP-482/
├── ticket.json            summary, status, attachment manifest
├── README.md              the same thing, readable
├── images/                screenshot.png
├── videos/                bug-repro.mp4
├── audio/                 voice-note.m4a
├── files/                 logs.txt
├── transcripts/bug-repro/
│   ├── transcript.json    segments + word timestamps
│   ├── transcript.srt     also .vtt .txt .timed.txt
│   └── transcript.en.*    English, if the source wasn't
└── frames/bug-repro/
    ├── frame_00-01-23.500.jpg
    └── contact-sheet.jpg
Install

Two commands in Claude Code.

The first inpoint call builds its own virtualenv. Expect a couple of minutes once, then it is instant. On macOS 26 English audio is transcribed by Apple's engine with nothing to download. Whisper weights, about 0.9 GB, download the first time another language needs them.

/plugin install inpoint --marketplace azadhash/inpoint
/reload-plugins

Prerequisites

brew install uv ffmpeg

Connect to Jira with an API token, or skip this and let Claude use your browser.

inpoint login
inpoint doctor
PlatformTranscriptionSpeed
macOS 26 and laterApple's on-device speech engineEnglish and 9 other languages, no download, fastest
macOS, Apple SiliconGPU via MLXabout 10× real time, used for other languages and translation
macOS Intel, Linux, WindowsCPU via openai-whispersame output, several × slower

Nothing leaves your machine.

Transcription runs locally. The only network calls are to your own Jira site and a one-time model download from Hugging Face.

  • Your API token is stored with owner-only permissions, outside the plugin folder.
  • Browser mode stores nothing; it reuses your existing Chrome session.
  • Videos, transcripts and frames stay in the ticket folder on your Desktop.
Command reference

Every command takes --json.

That is how Claude talks to it. The same flags work for you in a terminal.

CommandWhat it does
inpoint jira fetch <KEY>Read the ticket and download everything, no browser needed
inpoint transcribe <file|KEY>Whisper transcript plus English translation
inpoint transcript <file>Read a transcript back, by range or search term
inpoint frames <file>Extract stills at timestamps, over a range, or at scene changes
inpoint libraryEvery harvested ticket, with transcript and frame status
inpoint jira status <KEY>What has been harvested for one ticket
inpoint jira import <KEY> <files…>File something you saved by hand
inpoint probe <file>Duration, codecs, resolution
inpoint serveThe local web UI
inpoint doctorCheck ffmpeg, Whisper, paths and Jira auth
inpoint login / inpoint logoutStore or clear a Jira API token
Scope

What it doesn't do.