Skip to main content

Find moments in your videos. Agent-first CLI for Marlin-2B: dense captioning + temporal grounding, local or hosted.

Project description

Marlin — video understanding on your Mac

Try it live Hugging Face PyPI

The command-line tool for Marlin-2B — a 2B video VLM for the two questions you actually ask a video: what is happening, and when. Runs free and local on Apple Silicon — no API key, no Hugging Face account.

  • marlin caption → a Scene description + a <start>–<end> event timeline
  • marlin find → the single start → end span where your query happens

Install

Apple Silicon (M-series Mac) only for now. NVIDIA / other platforms are coming as a separate optimized build.

uv tool install nemostation      # or: pipx install nemostation
marlin setup                     # one-time: sign in, build the local engine
marlin caption clip.mp4          # describe what's in a video
marlin find clip.mp4 "a deer crossing"   # locate when it happens → start → end

First run opens your browser for a quick sign-in (two questions, then Google), detects your Mac, and builds the local MLX engine. The 8-bit weights are public — nothing gated. Add --json to any command for parseable output.

What it produces

marlin caption "video.mp4"what's in it marlin find "video.mp4", "gunfight"when it happens
Marlin caption example Marlin find example

Each call runs one model pass on one bounded clip (~2 min at 2 fps) — the same contract as the inference server. For longer videos, window with ffmpeg and loop.

Why Marlin

At 2B params it's the strongest open model in its weight class on dense captioning (DREAM-1K, CaReBench) and natural-language temporal grounding (TimeLens-Bench) — competitive with Gemini-2.5 at a fraction of the cost. See the benchmarks on the model card.

Use it from an agent

marlin skills install        # → .claude/skills/ + .agents/skills/

Installs the video-understanding skill so Claude Code / Codex use marlin as "eyes on a video" — clip-length and single-find limits baked in. Every verb honors --json (stdout parseable, progress on stderr).

Contributing

Marlin is meant to be extended — and adding a skill is the easiest way in. A skill is a folder under skills/ with a SKILL.md that teaches an agent to use caption / find for one job — clip scoring, b-roll search, highlight reels, footage catalogs, whatever you build.

skills/
  video-understanding/SKILL.md   # ships today — the reference
  your-skill/SKILL.md            # ← add yours

Add one:

  1. Copy the format from video-understanding/SKILL.md — frontmatter (name, description, requires.bins) + a short recipe.
  2. Keep it honest about the limits (one bounded clip per call; find returns one span).
  3. Open a PR. New skill ideas, issues, and docs fixes are all welcome too.

Hack on the CLI:

git clone https://github.com/shu-bamma/marlin-cli
cd marlin-cli
uv tool install --editable .     # or: pip install -e .
pytest                           # contract tests

New verbs, engine support, and bug fixes are all fair game — open an issue to chat about anything bigger. Licensed under Apache-2.0.

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nemostation-0.1.17.tar.gz (126.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nemostation-0.1.17-py3-none-any.whl (46.1 kB view details)

Uploaded Python 3

File details

Details for the file nemostation-0.1.17.tar.gz.

File metadata

  • Download URL: nemostation-0.1.17.tar.gz
  • Upload date:
  • Size: 126.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.13

File hashes

Hashes for nemostation-0.1.17.tar.gz
Algorithm Hash digest
SHA256 c8fea7412bab5a51d2aec5d014253c32c3a5ec68908d0d2aaa5a814b6b696d69
MD5 d40214c369723443f6ed3c8d0a4439ee
BLAKE2b-256 7910da8647f5fd38bf50f9e70c61ab9fe0d2d2fa13ffd682d2f6884cd1b3081f

See more details on using hashes here.

File details

Details for the file nemostation-0.1.17-py3-none-any.whl.

File metadata

File hashes

Hashes for nemostation-0.1.17-py3-none-any.whl
Algorithm Hash digest
SHA256 a717493faea7b9a6b506f698228276e9f002d6f07077c925ead7cb1c01b55036
MD5 383b6a0f4dd9a0e84d738e8b842a42d2
BLAKE2b-256 e084e87eba81ac493e2de896d820e7405adbc00598c95228b59ad4a684a7b5bc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page