← Plugin catalog
Creativity

RTST AI

RTST AI (VISATECH S.R.L.) v0.1.0

Create AI images and videos

Create a free account to save this plugin.

Competitor profile

Developer declarations; not independently tested. Listing last checked Nov 4, 2026. Package observed Nov 3, 2026.

Declared capabilities

  • Read
  • Write

Cost & access

No purchases happen in ChatGPT. Generations spend credits from the user's existing rtst.ai account.

Declared limitations

  • Not enough credits for the requested video: show required vs. available credits, submit nothing, and link to rtst.ai.
  • Blocked by rtst.ai content moderation: relay the refusal, suggest a fully covered alternative, and do not switch models to get around it.
  • No delete tool exists: decline, link the image on rtst.ai to delete it there, and say it has not been deleted.

Onboarding example

Use RTST to create a poster of a red panda barista pulling espresso in a cozy café, golden hour.

View package source →

Description

From the marketplace listing

RTST AI connects your rtst.ai account so you can create images and videos just by describing them. Finished images, and playable videos, appear right in the conversation. What you can do: - Generate images: text-to-image, editing your own photos, variations, grids and multiple samples, with each model's own sizes and aspect ratios. - Generate videos: text-to-video and image-to-video with first/last-frame control, reference images and optional audio. - Motion transfer: animate a character image with the motion from a reference video. - Use your own images: attach a photo, pick one in the in-chat uploader, or import any public image by URL. - Browse and reuse: your image, video and motion-transfer library, with one-click animate, variation, remix and use-as-reference. Generations are private to your rtst.ai library unless you ask to publish them. Sign in with your rtst.ai account, or create one during sign-in; your password is never shared and you can disconnect at any time.

Language: English · Automatically detected from descriptions.

Screenshots

From the developer.

Changes

No changes recorded yet. Follow this plugin to keep track of future changes.

First seen Oct 29, 2026. Last seen Nov 4, 2026.

Keywords

Files & skills

File archives

Plugin package14 files · 676 KBBrowse files →
Skill instructions
animate-character2.46 KB

View saved version →

---
name: animate-character
description: Animate a character image with the motion from a reference video using RTST (rtst.ai) motion transfer — make a person, mascot or illustration perform a dance, gesture or movement taken from another clip. Use when the user wants their character or photo to copy the moves in a video, and when an RTST card button picks a motion reference video or asks for another motion transfer.
---

# Motion transfer with RTST

Tools: `motion_transfer`, `estimate_cost`, `list_videos`, `job_status`.

1. **The model is fixed.** `motion_transfer` always runs RTST's Wan motion-transfer
   model. Never ask the user to pick a motion model and never list models for this.
2. **Character image** — a hosted https URL. Use `use-my-media` for the user's own
   photo (a new request opens the uploader again; reuse an earlier upload only if the
   user points to it), or an image they pick from their library (`list_images`).
3. **The motion.** Either:
   - `reference_video_url`: a hosted https video the **user** chose: one of their RTST
     videos or a public https video URL. If they have not said which, show their videos
     with `list_videos` and **wait**: in ChatGPT they pick one with the card's **Use this
     motion** button. Never choose a reference video yourself. Videos cannot be uploaded
     through this plugin; `media_upload` and `media_import_url` take images only.
   - `template_id`: only if the user already has an RTST motion template id.
4. **Mode.** Leave `mode` out (standard). Send `"pro"` only if the user asks for higher
   quality.
5. **Quote.** Call `estimate_cost` with `type: "motion"` and the reference clip's
   `duration` in seconds if you know it; otherwise give the per-second rate. Tell the
   user it is an estimate, and get a yes before submitting.
6. **Submit** with `motion_transfer`, once. In ChatGPT the card follows the job: do not
   call `job_status`. Elsewhere call `job_status` with `kind: "motion"` and
   `sync: true`, and report the result URL when it finishes.
7. Finished transfers are listed by `list_videos` with `kind: "motion"`.

## Messages sent by RTST card buttons

- "Use this video as the motion reference for my rtst.ai motion transfer: …" → that URL
  as `reference_video_url`. If there is no character image yet, get one with
  `use-my-media`; then quote and wait for a yes.
- "Make another motion transfer like this one with rtst.ai: …" → same inputs and model,
  or the change the user asks for; quote again.
create-image3.99 KB

View saved version →

---
name: create-image
description: Create or edit images with RTST (rtst.ai) on the user's account — text-to-image, editing or restyling a photo, variations, grids and several samples, on any RTST image model. Use when the user asks RTST to generate, draw, design, edit or vary a picture, and when an RTST card button asks for a variation, an edit, a different image model, a retry, or to use an image as a reference.
---

# Create an image with RTST

Tools: `get_model`, `list_models`, `estimate_cost`, `generate_image`, `job_status`,
`enhance_prompt`.
Bringing in the user's own image is the `use-my-media` skill.

1. **Pick the model.** If the user named one, call `get_model` with their wording
   (`type: "image"`) and use the exact `name` it returns. If it returns several
   `matches`, take the one the user meant or ask. Otherwise choose one yourself from
   `list_models` (`type: "image"`, no card) by each model's `description` and
   `credit_cost` (`is_free` models suit quick drafts), and tell the user which you
   picked. Call `show_models` only if they ask to see the models. Never invent a model
   name.
2. **Read the model's `params`.** Each image model lists the controls it accepts
   (`key`, `type`, `options` or `min`/`max`). `aspect_ratio`, `resolution`, `quality`
   and similar keys go inside `generate_image`'s `params` under exactly that key,
   using only a listed option. `samples` is its own argument (the model's `max`
   applies). A model that does not list a key does not take it.
3. **Write the prompt.** Expand a terse request into a detailed prompt: subject,
   action, setting, lighting, mood, composition, style; for photographic looks add
   camera, lens and aperture. If the user wants help with wording, `enhance_prompt`
   returns a richer version; show it before using it.
4. **Images in.** Editing or referencing needs hosted https URLs in `image`: the first
   is the image to edit, the rest are references (up to the model's
   `reference_images` max). Get them with `use-my-media`.
5. **Quote when it costs.** For a paid model, `samples` > 1, a grid or a higher tier,
   call `estimate_cost` with `type: "image"` and the same arguments you will generate
   with, and tell the user the credits. If `can_afford` is false, do not submit:
   show `balance` and point to https://rtst.ai/pricing.
6. **Generate** with `generate_image`. Output is private to the user's library; send
   `private: false` only if the user asks to publish it.
7. **Finish the job.** If `state` is `"pending"`: in ChatGPT the card finishes it, so do
   not call `job_status`; elsewhere call `job_status` once with `kind: "image"` and
   `sync: true`. Never resubmit a job that is still running.
8. **Reply.** In ChatGPT a card shows the result: do not repeat the URLs; say which
   model ran, what it cost, and offer a next step (variation, edit, animate with
   `create-video`). Where no card renders (Codex, Claude Code), give the image
   URL(s) and `web_url`.

If a generation is refused for safety, say so and suggest a different prompt; do not
switch models to get around a safety filter. If it failed for credits, show `balance`.

## Messages sent by RTST card buttons

- "Generate another variation of that image with rtst.ai, same style, different
  composition." → same model and prompt, varied composition.
- "Edit the image … with rtst.ai: …" → `image: [that URL]` plus the user's instruction.
- "Use this image as the reference for my next rtst.ai generation: …" → keep the URL for
  the next generation's `image` (or a video's frames, via `create-video`).
- "Use the … (…) image model on rtst.ai for my next image. Ask me for the prompt if
  needed." → use that model (`get_model` for its `params`); ask for the prompt if none
  was given.
- "Retry that rtst.ai generation with an adjusted prompt or a different model." → read
  why it failed first; for a safety refusal change the prompt, not the model.
- "Generate a … with rtst.ai: …" (an empty gallery's Create button) → start here, or in
  `create-video` for a video.
create-video4.16 KB

View saved version →

---
name: create-video
description: Create videos with RTST (rtst.ai) on the user's account — text-to-video, animating an image (first/last frame), reference images and optional audio, on any RTST video model, always quoting the credit cost first. Use when the user asks RTST to make, animate or remix a video or clip, and when an RTST card button asks to animate an image, make another take, a longer or higher-resolution version, a remix, or to use a video model.
---

# Create a video with RTST

Tools: `get_model`, `list_models`, `estimate_cost`, `generate_video`, `job_status`,
`enhance_prompt`, `balance`. Bringing in the user's own image is the `use-my-media` skill.

1. **Pick the model.** If the user named one, call `get_model` with their wording
   (`type: "video"`) and use the exact `name` it returns. Otherwise choose one yourself
   from `list_models` (`type: "video"`, no card) by `description`, and tell the user
   which model you picked and why. Call `show_models` only if they ask to see the
   models. Never invent one.
2. **Take every setting from that model's entry.** `aspect_ratio` and `duration` from its
   lists (most models require both); `resolution` from `resolutions`; `audio: true` only
   if `is_audio_supported`; images only if `is_image_supported`, and a `last_frame` only
   if `supported_frames` allows it.
3. **Write the prompt** — at least 10 words, describing subject, motion, camera move,
   setting and mood. If it is shorter, offer `enhance_prompt` and show the result.
4. **Images in** (hosted https URLs, from `use-my-media`):
   - Animate an image: `first_frame` (and optionally `last_frame`).
   - Subject, style or scene references: `reference_images`, cited in the prompt as
     `{{img1}}`, `{{img2}}`… in array order.
   - Seedance 2.x takes frames **or** references in one job, never both.
5. **Always quote first.** Video always costs credits. Only the `estimate_cost` number may
   be quoted: `credits_per_second` is a base rate that resolution and audio change either
   way (480p can cost less than half of 1080p), and Seedance 2.x has no rate at all
   (`pricing`, token-priced). Never work a price out from a rate. Call `estimate_cost` with
   `type: "video"` and the same arguments you will generate with. Tell the user the
   credits and the settings you chose (duration, aspect ratio, resolution, audio), then
   **stop and wait**: submit only after the user says to go ahead, or changes a setting
   (quote again). If `can_afford` is false, do not submit: show `balance` and point to
   https://rtst.ai/pricing.
6. **Generate** with `generate_video`, once, after the go-ahead. The video is private to the user's library;
   send `private: false` only if the user asks to publish it.
7. **Follow the job.** Videos take about 1–3 minutes. In ChatGPT the card follows the
   job and plays the video when it is done: do not call `job_status`, just tell the user
   it is rendering. Elsewhere call `job_status` with `kind: "video"` and `sync: true`,
   and again when asked or after `poll_after_seconds`. Never resubmit a running job.
8. **Reply.** With a card, do not repeat URLs; summarize model, length and cost and
   offer a next step. Without one (Codex, Claude Code), give the video URL and `web_url`.

If a job is refused for safety, say so and suggest a different prompt; do not switch
models to get around a safety filter.

## Messages sent by RTST card buttons

- "Animate this image into a short video with rtst.ai: …" → that URL as `first_frame`.
- "Generate another take of that video with rtst.ai, same prompt, different seed/motion."
  → same model, prompt and settings; quote again.
- "Make a longer or higher-resolution version of that video with rtst.ai — estimate the
  cost first." → a longer `duration` or higher `resolution` the model offers; quote it.
- "Make another video like this one with rtst.ai: …" → reuse that prompt, then quote.
- "Use the … (…) video model on rtst.ai for my next video — estimate the cost first."
  → `get_model` for its settings, then quote.
- "Check the status of my rtst.ai … job …" (the card could not refresh itself) →
  `job_status` with that id and kind, then report the result with its URL: no card
  shows it.
library-and-account2.24 KB

View saved version →

---
name: library-and-account
description: Browse the user's RTST (rtst.ai) library and account — their generated images, videos and motion transfers, the connected account, credit balance, plan, model prices and credit spend history. Use when the user asks to see their RTST images or videos, which account is connected, how many credits they have, what something costs, or where their credits went.
---

# The RTST library and account

Tools: `list_images`, `list_videos`, `whoami`, `balance`, `transactions`, `show_models`,
`list_models`, `estimate_cost`.

- **Images:** `list_images` (newest first; `page` and `limit`).
- **Videos:** `list_videos`; `kind: "motion"` lists motion transfers instead.
- **Load more:** call the same tool with the next `page` (the card's Load more does this).
- **Which account:** `whoami`. **Credits and plan:** `balance`.
  **Where credits went:** `transactions` (optional `category`).
- **Models and prices:** when the user asks to see or compare models, `show_models`
  (the picker card in ChatGPT; once per request). A video model's rate is only a base
  rate: for a price, use `estimate_cost` with the arguments the job would use.
- **Plans and credits** are described on https://rtst.ai/pricing. Link it when the user
  asks or a job can't be afforded; nothing is bought inside the chat, and never push an
  upgrade or a purchase.

In ChatGPT these render as cards: summarize in a sentence instead of listing every
item or URL. Where no card renders (Codex, Claude Code), list items briefly with their
links.

This plugin cannot delete media, change whether an item is public, or change the plan.
Say so and point to https://rtst.ai/workspace (media) or https://rtst.ai/profile
(account); never claim to have done it.

## Messages sent by RTST card buttons

- "Estimate how many credits a 5-second 720p video costs on rtst.ai." → `estimate_cost`
  (`type: "video"`) on a suitable model's 5-second 720p settings, and say which model
  you priced.
- "Show page … of my rtst.ai …" (Load more could not run inside the card) → the matching
  list tool with that `page` (`list_videos` with `kind: "motion"` for motion transfers).
- Library buttons that animate, remix or reuse an item hand off to `create-video`,
  `create-image` or `animate-character`.
use-my-media2.48 KB

View saved version →

---
name: use-my-media
description: Bring the user's own image into RTST (rtst.ai) — a photo attached in the chat, a local file, or a public image URL — and get the hosted URL that image editing, image-to-video, reference images and motion transfer need. Use when the user wants to edit, animate or reference their own picture with RTST, and when the RTST upload card reports an uploaded image.
---

# Use the user's own image with RTST

Tools: `media_upload`, `media_upload_widget`, `media_import_url`.

RTST tools take images only as hosted https URLs. Pick the route by where the image is:

| The image is… | Do this |
|---|---|
| attached to the chat in ChatGPT | `media_upload` with the attachment as `file` |
| on the user's computer, in ChatGPT or claude.ai | `media_upload_widget`, then wait for the user to pick it |
| a local file, in Codex or Claude Code | run `rtst upload <file> --json` (the rtst CLI) and use the URL it prints; without the CLI, ask for a web URL or the chat app |
| already on the web | `media_import_url` with its https URL |
| already in the user's RTST library | use its URL from `list_images` as-is |

- The user mentions their photo ("my photo", "this picture") but nothing is attached, in
  ChatGPT or claude.ai: call `media_upload_widget` right away, in that same turn and before
  choosing a model or quoting. Never ask them in text to upload or attach it.
- Each new request for "my photo" opens the uploader again, even if the user uploaded
  one earlier in the chat. Reuse an earlier upload only when they point to it ("the same
  photo", "that image").
- After `media_upload_widget`, wait: the card uploads the file and reports the hosted
  URL. Do not also call `media_upload`.
- Images only, up to 15 MB. RTST cannot take a video through this plugin.
- Do not try to pass a real photo through `media_upload`'s `data_base64` yourself: you
  cannot reliably write out megabytes of base64. It is for the upload card and tiny images.
- The result's `url` is what goes into `generate_image` `image`, `generate_video`
  `first_frame` / `last_frame` / `reference_images`, or `motion_transfer`
  `character_image_url`. Continue the task the user started; do not stop at the upload.

## Messages sent by the RTST upload card

- "I uploaded an image to rtst.ai (hosted URL: …). Continue with it." → carry on with
  what the user wanted the image for; ask only if that is unclear.
- "Animate this image into a short video with rtst.ai: …" → `create-video`, with the URL
  as `first_frame`.
Package details

Publisher declarations from the archived package. These are separate from our research and the live service's terms.

Package license
MIT
Package author
RTST AI (VISATECH S.R.L.)
Keywords
See keywords
Commerce declaration
Does not support commerceThis does not establish whether access is free or paid.
Review scenarios
5 positive · 3 negativeScenario counts, not test results.

Declared capabilities

  • Read
  • Write

Some manifest fields differ or could not be read. The structured report retains the source references.

Package observed Nov 3, 2026.

Technical details
First seen
Oct 29, 2026 · 07:57 UTC
Last seen
Nov 4, 2026 · 06:00 UTC
Collection status
Collected

plugin_asdk_app_6ac74ea7f23c8191a32e2a3be88b790b

Download plugin data (JSON)