Skip to content
cccskills
FreePublished on GitHub

openstoryline-install

Set up FireRed-OpenStoryline on a local computer, from installing Python dependencies and downloading models and assets to configuring API access, starting services, and checking that the installation works.

OriginalShow the original description

Install, configure, and start FireRed-OpenStoryline from source on a local machine. Use when a user asks to set up OpenStoryline, troubleshoot installation, download required resources, fill config.toml API keys, or launch the MCP and web services, as well as Chinese requests like “安装 OpenStoryline”, “配置 OpenStoryline”, “启动 OpenStoryline”, “把 OpenStoryline 跑起来”, “修复 OpenStoryline 安装问题”, or “排查 OpenStoryline 启动失败”.

Run score Not tested

See how to install

Good for

  • Installing FireRed-OpenStoryline locally
  • Configuring model connections and API keys
  • Investigating installation or startup failures
  • Checking required downloads and running services

Files included (1)

  • SKILL.md6.0 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

OpenStoryline Install

Use this skill when the task is to install or repair a local source checkout of FireRed-OpenStoryline.

Keep the workflow deterministic:

  1. Confirm the repo path and read the current README.md and config.toml.
  2. Detect local prerequisites before changing anything.
  3. Prefer a local venv install unless the user explicitly asks for Docker or conda.
  4. Download resources only after Python dependencies succeed.
  5. Validate imports and config loading before claiming success.
  6. This skill assumes macOS, Linux, or WSL with a POSIX shell.

What This Skill Covers

  • Clone the GitHub repo if needed
  • Create a Python environment
  • Install Python dependencies
  • Download .storyline models and resource/ assets
  • Fill config.toml model settings
  • Start MCP and web servers
  • Explain common installation/documentation gaps

Preconditions

Check these first:

  • git
  • Python >= 3.11
  • ffmpeg
  • wget
  • unzip

Optional:

  • docker
  • conda

If ffmpeg, wget, or unzip are missing, install them through the OS package manager before continuing.

Examples:

  • macOS with Homebrew:

    brew install ffmpeg wget unzip
    
  • Debian/Ubuntu:

    sudo apt-get update
    sudo apt-get install -y ffmpeg wget unzip
    

If no supported package manager or permission is available, stop and report the missing system dependency clearly.

Interpreter selection

First prefer any interpreter that already exists and passes version checks:

  1. A system Python >= 3.11
  2. An already available conda Python >= 3.11
  3. An already available pyenv Python >= 3.11, but only if basic stdlib modules work

Validate candidate interpreters before using them:

/path/to/python -c "import ssl, sqlite3, venv; print('stdlib_ok')"

If no supported interpreter already exists, peferr conda fallback:

conda create -y -n openstoryline-py311 python=3.11
conda run -n openstoryline-py311 python --version
conda run -n openstoryline-py311 python -m venv .venv

After a supported interpreter is found, always create a repo-local .venv and continue using .venv/bin/python for install, config validation, and service startup.

Do not duplicate the rest of the workflow for pyenv or conda unless the user explicitly asks to stay inside a conda environment.

Preferred Install Path

From the repo root:

/path/to/python -m venv .venv
.venv/bin/python -m pip install --upgrade pip
.venv/bin/python -m pip install -r requirements.txt
bash download.sh

Notes:

  • download.sh pulls both model weights and a large resource archive. It can take a long time and may resume after network drops.
  • The resource download is required for a full local run, not just the Python package install.

Configuration

Before starting the app, update config.toml.

You can use scripts/update_config.py.

At minimum, fill:

.venv/bin/python scripts/update_config.py --config ./config.toml --set llm.model=REPLACE_WITH_REAL_MODEL
.venv/bin/python scripts/update_config.py --config ./config.toml --set llm.base_url=REPLACE_WITH_REAL_URL
.venv/bin/python scripts/update_config.py --config ./config.toml --set llm.api_key=sk-REPLACE_WITH_REAL_KEY

.venv/bin/python scripts/update_config.py --config ./config.toml --set vlm.model=REPLACE_WITH_REAL_MODEL
.venv/bin/python scripts/update_config.py --config ./config.toml --set vlm.base_url=REPLACE_WITH_REAL_URL
.venv/bin/python scripts/update_config.py --config ./config.toml --set vlm.api_key=sk-REPLACE_WITH_REAL_KEY

Optional but common:

  • search_media.pexels_api_key for searching media
  • TTS provider keys under generate_voiceover.providers.* (choose one provider)

Verification

Run these checks before saying installation is complete:

.venv/bin/pip check
PYTHONPATH=src .venv/bin/python -c "from open_storyline.config import load_settings; load_settings('config.toml'); print('config_ok')"

Also confirm key resources exist:

test -f .storyline/models/transnetv2-pytorch-weights.pth
test -d resource/bgms

Start Services

There are two common paths. These are long-running processes. Do not wait for them to exit normally. Treat successful startup log lines or confirmed listening ports as success, and keep the services running in separate shells/sessions as needed.

Manual start:

PYTHONPATH=src .venv/bin/python -m open_storyline.mcp.server

In a second shell:

PYTHONPATH=src .venv/bin/python -m uvicorn agent_fastapi:app --host 127.0.0.1 --port 8005

Expected Outputs

After a successful install:

  • .venv/ exists
  • MCP listens on the configured local port (commonly 127.0.0.1:8001)
  • Web listens on the configured web port (commonly 127.0.0.1:8005, though run.sh defaults may differ)

Common Problems

download.sh is slow or interrupted

Symptom:

  • Large downloads stall or reconnect

Fix:

  • Let wget continue; it supports resume behavior here
  • Verify extracted outputs instead of trusting the progress meter

Web/MCP server fails to bind

Symptom:

  • operation not permitted while binding 127.0.0.1 or 0.0.0.0

Fix:

  • In agent sandboxes, request permission to open local listening ports
  • Prefer 127.0.0.1 over 0.0.0.0 unless external access is required

Response Pattern

When reporting status to the user, separate:

  • what is installed
  • what is still downloading
  • what config is still missing
  • what address the service is listening on

Do not say "installation complete" if only the Python packages are installed but the resource bundle is still missing.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Connect video clips with AI-generated transition footage. The workflow can select and arrange clips, add background music, and render a finished video through a dedicated timeline, with user confirmation before generating all transitions together.

  • Connecting video clips with AI-generated transitions
  • Arranging clips for transition-based editing
  • Finishing a transition video with background music
FireRedTeam/FireRed-OpenStoryline3.6KUpdated Jul 31, 2026

Turn video editing preferences into a reusable skill document. It identifies patterns in pacing, sound, and visual choices, confirms the summary with the user, and saves editing instructions for an agent to follow in future work.

  • Documenting a preferred video editing style
  • Reusing pacing and audio rules in future edits
  • Updating an existing editing style skill
FireRedTeam/FireRed-OpenStoryline3.6KUpdated Jul 31, 2026

Organize an editing workflow for daily or travel vlogs, including footage review, clip grouping, scripts, voiceover, and music. Build a timeline and render the finished video, choosing optional steps according to the request.

  • Editing everyday footage into a vlog
  • Arranging travel clips into a coherent story
  • Planning an edit when requirements are unclear
FireRedTeam/FireRed-OpenStoryline3.6KUpdated Jul 31, 2026

Run an installed OpenStoryline setup to edit local footage through conversation. Start services, submit editing requests, continue revisions in the same session, and check the generated MP4 files and their paths.

  • Starting services and editing local footage
  • Changing background music through follow-up requests
  • Revising script tone in the same editing session
FireRedTeam/FireRed-OpenStoryline3.6KUpdated Jul 31, 2026

Create a rough cut of a spoken video using timestamped speech recognition. It removes redundant content, checks that the remaining speech flows and sentences are complete, and renders the edit while preserving the original audio.

  • Creating a rough cut of a spoken video
  • Checking speech flow after cuts
  • Recutting footage to match specific editing requests
FireRedTeam/FireRed-OpenStoryline3.6KUpdated Jul 31, 2026

Write video narration or dialogue using the style of a reference text. Analyze its rhythm, phrasing, and emotional tone, then create a connected script and title grounded in the actual footage.

  • Writing video narration in the style of a supplied sample
  • Matching script tone to reference phrasing and rhythm
  • Connecting grouped clips through a coherent script
FireRedTeam/FireRed-OpenStoryline3.6KUpdated Jul 31, 2026

See all skills by FireRedTeam

Report a problem with this skill