@keepylabs/cutroom 0.7.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/cutroom.mjs +8 -5
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -15,11 +15,12 @@ Everything lives in the Cutroom folder in your home folder. Open Claude Code the
|
|
|
15
15
|
Cutroom/
|
|
16
16
|
CLAUDE.md how your studio works: approvals, rules
|
|
17
17
|
brand/ your colors, logo, frames you love
|
|
18
|
-
references/ reel breakdowns and creator teardowns
|
|
18
|
+
references/ your library: reel breakdowns and creator teardowns
|
|
19
19
|
inbox/ drop new raw videos here
|
|
20
20
|
videos/
|
|
21
21
|
2026-11-01-topic/
|
|
22
22
|
raw/ this video's footage
|
|
23
|
+
references/ what this video copies, with a why-it-works note
|
|
23
24
|
script.md what you say, word for word
|
|
24
25
|
facts.md every number on screen, with its source
|
|
25
26
|
plan.md the edit plan and its status
|
package/cutroom.mjs
CHANGED
|
@@ -21788,7 +21788,7 @@ ${authorize}
|
|
|
21788
21788
|
}
|
|
21789
21789
|
|
|
21790
21790
|
// src/community/local/tools.ts
|
|
21791
|
-
var VERSION = "0.7.
|
|
21791
|
+
var VERSION = "0.7.1";
|
|
21792
21792
|
var GATEWAY = () => (process.env.CUTROOM_GATEWAY || "https://keepylabs.com/api/cutroom").replace(/\/$/, "");
|
|
21793
21793
|
var HOME = () => process.env.CUTROOM_HOME || join3(homedir(), "Cutroom");
|
|
21794
21794
|
async function call(op, body = {}, fetchImpl = fetch) {
|
|
@@ -22057,13 +22057,14 @@ Everything for my videos lives in this folder. Open Claude Code here so it can s
|
|
|
22057
22057
|
- inbox/: drop new raw videos here. When a video starts, its clip moves into that video's raw/ folder.
|
|
22058
22058
|
- videos/<date>-<topic>/: one folder per video, with everything for it:
|
|
22059
22059
|
- raw/: the footage
|
|
22060
|
+
- references/: only what this video copies (Pinterest images, the reel it matches), each with a one-line "why it works" in references/notes.md
|
|
22060
22061
|
- script.md: what I say, word for word
|
|
22061
22062
|
- facts.md: every number or claim on screen, with its source
|
|
22062
22063
|
- plan.md: the edit plan and a status line (footage ready, plan ready, preview, final, posted)
|
|
22063
22064
|
- renders/: previews and the final export
|
|
22064
22065
|
- checks.md: what QA found and what got fixed
|
|
22065
22066
|
- brand/: my colors (brand.json), logo and a few frames I love.
|
|
22066
|
-
- references/: reels and creators I study, each with a breakdown of why it works.
|
|
22067
|
+
- references/: my library of reels and creators I study across videos, each with a breakdown of why it works.
|
|
22067
22068
|
|
|
22068
22069
|
## Rules
|
|
22069
22070
|
- Three stops: I approve the script, then the plan, then the preview. Nothing final renders before that.
|
|
@@ -22119,7 +22120,9 @@ ${plan}
|
|
|
22119
22120
|
`);
|
|
22120
22121
|
}
|
|
22121
22122
|
function startVideoNotes(folder, transcript) {
|
|
22122
|
-
const script = join4(folder, "script.md"), facts = join4(folder, "facts.md");
|
|
22123
|
+
const script = join4(folder, "script.md"), facts = join4(folder, "facts.md"), notes = join4(folder, "references", "notes.md");
|
|
22124
|
+
mkdirSync4(join4(folder, "references"), { recursive: true });
|
|
22125
|
+
if (!existsSync3(notes)) writeFileSync3(notes, "# References for this video\n\nWhat this video copies and why it works, one line each.\n\n");
|
|
22123
22126
|
if (!existsSync3(script)) writeFileSync3(script, `# Script
|
|
22124
22127
|
|
|
22125
22128
|
What I say, word for word (from the footage; fix any misheard words here).
|
|
@@ -22204,7 +22207,7 @@ ${meta2.error ?? tail(t.stderr)}`);
|
|
|
22204
22207
|
pauses_removed_s: project.removed_s,
|
|
22205
22208
|
...landscape ? { warning: "This video is landscape (wide). Cutroom crops the middle of it to make it vertical, so anything off-center gets cut, and an already-edited video (split screen, titles, captions burned in) will look wrong. Tell the user plainly and ask for the raw vertical take of them talking; continue only if they say this one is fine." } : {},
|
|
22206
22209
|
transcript: words.map((w) => `${w.t.toFixed(2)} ${w.w}`).join("\n"),
|
|
22207
|
-
next: "Check the transcript for misheard words (pass them as fixes). Then plan: list_styles, get_method('edit_plan') and follow it, then plan_reel to show the storyboard. Nothing renders until the user says go."
|
|
22210
|
+
next: "Check the transcript for misheard words (pass them as fixes). References for this video go in its references/ folder. Then plan: list_styles, get_method('edit_plan') and follow it, then plan_reel to show the storyboard. Nothing renders until the user says go."
|
|
22208
22211
|
};
|
|
22209
22212
|
}
|
|
22210
22213
|
async function ensureFonts(work) {
|
|
@@ -22508,7 +22511,7 @@ Before a first render: show_brand; if none, offer set_brand (from colors, a webs
|
|
|
22508
22511
|
|
|
22509
22512
|
QA flags are spots to check: look at each flagged frame yourself and say which are real problems (with the fix) and which are the design.
|
|
22510
22513
|
|
|
22511
|
-
Their studio is the Cutroom folder in their home folder (cutroom_doctor returns the path): inbox/ for new raw videos (look there first when they say "my video" without a path), videos/<date>-<topic>/ with everything for one video (raw/, script.md, facts.md, plan.md with its status line, renders/, checks.md), brand/, references/ for breakdowns and teardowns, and CLAUDE.md with their rules. Put every number shown on screen in that video's facts.md with its source; when QA finds a real mistake, offer to add a rule to their CLAUDE.md. To list videos or what's unfinished, read the status lines in videos/*/plan.md. Other creators' reels are for study only: never reuse their words, footage or branding.`;
|
|
22514
|
+
Their studio is the Cutroom folder in their home folder (cutroom_doctor returns the path): inbox/ for new raw videos (look there first when they say "my video" without a path), videos/<date>-<topic>/ with everything for one video (raw/, references/, script.md, facts.md, plan.md with its status line, renders/, checks.md), brand/, references/ as the library for breakdowns and teardowns, and CLAUDE.md with their rules. When they give a reference for one video (an image, a link, a reel to match), save it in that video's references/ and add a line to its references/notes.md saying what it is and why it works; pictures for plan_reel and render_reel can come from there. breakdown_reel and creator_teardown still go to the top-level references/ library. Put every number shown on screen in that video's facts.md with its source; when QA finds a real mistake, offer to add a rule to their CLAUDE.md. To list videos or what's unfinished, read the status lines in videos/*/plan.md. Other creators' reels are for study only: never reuse their words, footage or branding.`;
|
|
22512
22515
|
await serveStdio(() => {
|
|
22513
22516
|
const server = new McpServer({ name: "cutroom", version: VERSION }, { instructions: INSTRUCTIONS });
|
|
22514
22517
|
server.registerTool("cutroom_doctor", {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keepylabs/cutroom",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"description": "Cutroom for Claude Code: hooks and scripts with scoring, reel breakdowns, creator teardowns, and finishing your own videos with QA. Sign in with your Keepy Labs membership on Whop.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|