Claude, now with everything it can’t do.

p0ssess is a Claude Code plugin that turns other models into Claude’s subagents. Claude hands them work the way it hands work to its own subagents: a possessed Haiku agent carries the job through OpenRouter to a model that can watch video, hear audio or make images, and returns only the answer. Claude stays in charge, within your budget and rules.

Install p0ssessHow a hand-off works

Free and open source under MIT. You bring an OpenRouter key.

The film test: one prompt, run twice

6:10 to 8:05The flying squirrel is caught

Claude alone
Missed. It fell between two stills.
With p0ssess 6:44 to 7:26
The apple triggers a stake pit. The music cuts out for comic effect while he tumbles and is caught by a vine loop above the spikes, squealing. (qwen3.8-omni-flash, $0.0162)
Who described the film

Claude pulled 20 stills with ffmpeg, one every 30 seconds, and measured the loudness. It can’t hear. Through p0ssess, qwen3.8-omni-flash watched the whole film at one frame a second and listened to it.

1525of 25

  • Events1220 of 20
  • Sound cues35 of 5
  • Total cost$0.0999$0.1140
Picture
Sound
Events
  1. 0:00 to 0:30 Opening and title cards Found, at the right time. A plump purple-gray bird chirps, flaps and zips off with a whoosh.
  2. 0:30 to 0:55 The bunny wakes Found, at the right time. A burrow with loud snoring. A huge, fat rabbit yawns, stretches and waddles out with heavy thuds.
  3. 0:55 to 1:55 His morning: flowers, butterflies, an apple Found, at the right time. A butterfly lands on his face and he crosses his eyes.
  4. 1:55 to 2:30 Three rodents appear Found, at the right time. Three small animals appear, a chinchilla, a lanky reddish creature and a squirrel. They sneak up while he’s distracted, to playful pizzicato music.
  5. 2:30 to 3:10 They pelt him with fruit and nuts Missed. It fell between two stills. They posture and growl at him, and he doesn’t notice. A nut bonks him on the head and they cackle.
  6. 3:05 to 3:45 They kill the butterflies Missed. It fell between two stills. They grab his butterfly. The slapstick that follows ends with the red creature holding a spiky chestnut burr. The closest call of the run: it never says the butterflies die. Scored strictly, the total is 23.
  7. 3:45 to 5:00 He makes weapons and traps Found, at the right time. A percussive trap-building montage with snapping, scraping and tying sounds. He makes a vine snare, a stake and a camouflaged trigger, then grins.
  8. 5:00 to 6:10 The ambush Missed. It fell between two stills. The mouse drops his acorn and the trap springs. A net and boulder thud down, then a log crashes with a loud bang and a dust cloud. One detail is wrong: the “mouse” is a chinchilla.
  9. 6:10 to 8:05 The flying squirrel is caught Missed. It fell between two stills. The apple triggers a stake pit. The music cuts out for comic effect while he tumbles and is caught by a vine loop above the spikes, squealing.
  10. 8:08 to 9:56 Credits and a post-credits gag Found, at the right time. The squirrel glides with his eyes closed and the purple bird swoops in and hovers over him. They stare at each other, the bird caws, and the video cuts out.

One prompt, run twice on Claude Sonnet 5.5: “Describe what happens in bbb-10min.mp4 with timestamps, including what you can tell about the sound.” The film is Big Buck Bunny, 9:56 long. One run each, scored by hand against a checklist written before either run: two points an event, one a sound cue. With p0ssess 0.5.4 the job took 262 seconds and cost $0.0141 more than Claude alone, which took 40.

Three things Claude couldn’t do before

Ask the way you normally would. When a job needs video, audio or an image, Claude hands it to a model that can do it and answers from what comes back, with the model and its price in a few words. It asks first only when the estimate is above your limit.

  • Watch video

    You say: Watch apollo11-launch.mp4 and tell me when the engines ignite.

    What came back: the answer’s time, marked on the clip’s 45 seconds.
    The clip at 0:28, seen from above the launch pad: vapor at the base of the Saturn V and a countdown clock that reads 00 09.

    The engine ignition sequence begins at approximately 00:28 – 00:29 …

    Screen recordings, talks, whole films. This is 45 seconds of NASA’s Apollo 11 launch film. That time is right: at 0:28 the countdown clock in the frame reads 00 09.

    $0.0103measured, on gemini-3.8-flash

  • Hear audio

    You say: Transcribe eagle-has-landed.mp3 with timestamps.

    What came back: the transcript, under the recording’s own loudness.
    1. 00:00 - 00:03Houston, Tranquility Base here.
    2. 00:03 - 00:05The Eagle has landed.

    Meetings and voice memos, or the soundtrack of a video. This is NASA’s five-second recording from Apollo 11, and every word of the answer is right.

    $0.0013measured, on gemini-3.8-flash

  • Make and edit images

    You say: Make an image of a ghost holding a lantern.

    What came back: a figure under a sheer white sheet holds a lit oil lantern on a dark forest path.

    Icons and illustrations, or a retouched screenshot. This is what that prompt returned, cropped. It lands as a file and Claude prints the path.

    $0.0070measured, on recraft-v4.1-flash

Each price is the other model’s bill for one call. The hand-off itself costs Claude a few cents more, so p0ssess keeps it for work Claude can’t do or shouldn’t spend itself on. Small edits and plain questions never leave Claude.

How a possession works

Other models join your session as subagents. Claude starts one with the same Agent tool it uses for its own, in one sentence. That subagent is a small Haiku, possessed: it never does the job itself. It carries the request to the other model and passes the answer back word for word.

How a hand-off travels: Claude asks, a possessed Haiku subagent drives another model, and the answer comes back with the model and its price. On measured calls, qwen3.8-omni-flash watched a ten-minute film for $0.0162, gemini-3.8-flash described a ten-second clip for $0.0067, whisper-large-v3-turbo transcribed 16 seconds of speech for $0.0002 and recraft-v4.1-flash drew a 1024-pixel image for $0.0070.
  1. Claude

    Plans, reviews and answers. It starts one subagent and reads only what comes back.

  2. Haiku

    A background subagent, possessed. It makes the call and hands the answer back unchanged.

  3. another model

    Does the one job, because Claude can’t or shouldn’t.

Claude never reads the video, the raw tool output or the other model’s transcript, so the work doesn’t fill your conversation. After ten minutes of film its context stood at 28,883 tokens, against 28,555 when it worked alone.

Then Claude does what it does with any subagent’s work: checks it, uses it and answers you. Code edits come back as a diff from a separate git worktree, and nothing lands until Claude has read it.

Where the film run’s $0.1140 went
  • Claude Sonnet 5.5, in charge$0.0938
  • The possessed Haiku$0.0040
  • qwen3.8-omni-flash, which watched$0.0162

An engine picks who does the job

For each job, the Predictive Model Engine scores every model that could do it, Claude included. A score is a cautious estimate, out of 100, that the result will be accepted. It comes from licensed benchmarks, p0ssess’s own checks and your history.

Each level of stakes has a gate, and a model that scores below it isn’t considered. The violet part of each line is the scores that clear.

The gate for each level of stakes
StakesFor exampleGateA mistake costs
TrivialLog summaries, captions, describing a clip20$0.01
RoutineTest drafts, transcripts, bulk edits35$0.10
ImportantFeatures that ship, migration plans60$1
CriticalAuth, firewalls, production, money80$10

Critical work stays with Claude unless a rule of yours names a model. Claude makes the final call either way.

The engine starts from 104 researched use cases and runs on your machine.

Engine estimate, not a measurement

Pull the tables from a 50-page PDF statement into CSV. Routine, so the gate is 35.

The bar and the big figure are the total: the call, Claude’s time and the risk of a redo. Above the gate, the shortest bar wins.

  1. GPT-6 Lunalowest total$0.072score 98, clears 35call $0.0082
  2. Claude Haiku 5.5 subagent$0.082score 97, clears 35Claude usage
  3. Gemini 3.8 Flash$0.123score 100, clears 35call $0.062
  4. Gemini 4 Argon$0.221score 100, clears 35call $0.16
  5. Claude Sonnet 5.5 in session$0.296score 99, clears 35Claude usage
These are 5 of the engine’s 12 ranked options, on an API key, from p0ssess 0.5.4. Scores use the cautious end of each estimate. Evidence: LMArena leaderboard dataset, rev f566816, CC BY 4.0.

And the work Claude shouldn’t spend itself on

Beyond new senses, the same hand-off covers chores, second opinions and the last stretch of a usage window. The prices in this section are the engine’s estimates.

Tedious code, in a sandbox

You say: Use deepseek flash to draft tests for stats.py.

For chores the tests can judge, a cheap coding model works in its own sandbox, on a separate git worktree. The edits come back as a diff. Claude reads it and runs the tests before anything lands.

$0.0081engine estimate for drafting unit tests on deepseek-v4.1-flash-1017

A second opinion from another family

You say: Before I merge, get a review from another model family.

A model from outside Claude’s family reads the diff. Claude checks each finding against the code and fixes what holds up.

$0.0021engine estimate for reviewing a diff on glm-5.3-flash

More hand-offs as your limit nears

On Pro, Max and Ultra, p0ssess reads the 5-hour and weekly usage that Claude Code reports. Early in a window Claude’s time is cheap, so Claude keeps the work. Near the limit, the same job goes out.

Where you are in the 5-hour window
  1. Claude in sessionlowest total$0.346score 71, clears 60in plan
  2. GPT-6.1 Sol$0.893score 65, clears 60call $0.74
  1. GPT-6.1 Sollowest total$1.244score 65, clears 60call $0.74
  2. Claude in session$1.467score 71, clears 60in plan
Engine estimates for a long agent session, which is important work, so the gate is 60. These are 2 of its 4 ranked options. At 5% used the window is projected to end at 17%, and Claude’s time counts at 0.17 of list price. At 78% it is projected at 89%, and Claude’s time counts at 0.82.

You set the limits

A monthly cap and a per-task limit, enforced by the tools that spend. Under the limit a job just runs. Above it, Claude asks first, in one line with the cost.

Rules in your own words

  • Never use grok.
  • Only use gemini-3.8-flash for video.
  • Auto-approve video summaries up to 20 cents each today.

Claude shows the rule it wrote in one line and saves it when you confirm. A cloned repository’s rules can only tighten yours.

A sandbox for agent work

Coding agents run in a rootless podman sandbox with no access to your home directory, SSH keys or credentials, and no route to your local network. Your OpenRouter key stays in a proxy the model can’t reach.

A ghost in the status line

  • Idle p0ssess $0.14 today
  • Working p0ssess 2 running $0.14
  • Near the budget p0ssess $8.10 of $10 this month

One quiet segment after your own status line. It is never red and never animated.

What it won’t do

  • Send prompts to providers that train on them.
  • Spend past your monthly cap.
  • Hand off critical work, such as auth, infrastructure, production or money, unless your rule allows it.
  • Create a rule or a standing approval on its own.
  • Send secrets, or anything from a repository marked .p0ssess-private.
  • Read, store or relay your Claude credentials.
  • Patch or preload into Claude Code.
  • Phone home. History stays local, without prompt text.

Install p0ssess

Two commands and an OpenRouter key. Releases are served from the project’s own git server, next to the source, so you can see exactly what you run.

  1. Add the plugin to Claude Code.

    claude plugin marketplace add <repository URL>
    claude plugin install p0ssess@p0ssess
  2. Put your OpenRouter key where p0ssess reads it.

    mkdir -p ~/.config/p0ssess/secrets
    install -m 600 /dev/null ~/.config/p0ssess/secrets/openrouter_key
    "${EDITOR:-vi}" ~/.config/p0ssess/secrets/openrouter_key
  3. Start Claude Code and run /p0ssess:p0ssess-me. Then ask it to watch something. Settings changes wait for your yes, and p0ssess setup undo reverts them.

    Show the first run
    What /p0ssess:p0ssess-me prints on a first run, before the key is in place.
    ᗣ p0ssess 0.5.4   today $0.00   month $0.00 of $10.00 ▱▱▱▱▱▱▱▱▱▱   nothing running
    limits   asks above $0.02 a task · $0.48 today (paced) · no-training
    change   tell Claude ("cap OpenRouter at $5", "always ask before grok") · page http://127.0.0.1:…/t/…/
    setup    no OpenRouter key (put it in …/.config/p0ssess/secrets/openrouter_key, mode 0600) · 13 tools still prompt (p0ssess setup allow) · no status line segment (p0ssess setup statusline)

What you need

  • Claude Code 2.1.319 or later, on any Claude plan (Pro, Max, Team or Enterprise) or an API key.
  • An OpenRouter API key. Other models bill to it.
  • For the agent sandbox, Linux with rootless podman. Without it (on macOS and Windows), media and one-shot jobs still work.
  • Go 1.27 or later, only when a checkout has to build the binary itself.

Downloads

No release is published yet. These buttons turn on with the first one.

  • Linux, x86-64p0ssess-linux-amd64Download
  • Linux, arm64p0ssess-linux-arm64Download
  • macOS, Apple siliconp0ssess-darwin-arm64Download
  • Windows, x64p0ssess-windows-amd64.exeDownload
  • The plugin with all four binariesp0ssess-<version>.tar.gzDownload

You rarely need these by hand. The plugin’s launcher fetches the binary for your platform and runs it only if its SHA-256 matches the sums committed in the repository. Builds are reproducible, so anyone can rebuild a release and compare.

sha256sum -c --ignore-missing SHA256SUMS

Usage-aware routing needs the p0ssess status line, which /p0ssess:p0ssess-me offers to install. On other plans, Claude is priced at API rates unless you set your plan. On Team and Enterprise, admins can block plugins loaded with --plugin-dir and restrict which plugins and tool servers you can use; check whether code may go to other providers.