Documentation

API documentation

Quickstart

Mint a workspace API key, install @eddieai/cli, and run a project from import to export in four commands.

Before you start

You need an Eddie account with a workspace, and you need to be that workspace’s owner — only an owner can mint an API key. You also need the workspace to have spent at least $100 in credits; see Authentication for why.

Package
@eddieai/cli
Node version
18 or later
Base URL
https://app.heyeddie.ai

Mint a workspace API key

  1. Open the workspace menu and choose Integrations.
  2. Find the API keys section.
  3. Click Create key, give it a label so you can tell it apart from any others later, and confirm.
  4. Copy the key. It starts with sk_live_ and is shown exactly once — Eddie does not store the plaintext, so a key you lose has to be revoked and re-minted, not recovered.

Install the CLI

terminal
npm i -g @eddieai/cli

Export the key, then confirm it resolves to your workspace:

terminal
export EDDIE_API_KEY=sk_live_…
eddie login

A working key prints the owner email and the workspace id. Anything else is covered in Authentication.

A worked example

Four commands take a folder of footage to a downloadable MP4. Ids print to stdout; progress prints to stderr, so capturing an id into a shell variable does not also capture the progress lines.

terminal
# create a project and import footage — prints the promptable share id
id=$(eddie new --import ./footage/*.mov)

# prompt Eddie — the reply streams to your terminal
eddie prompt "$id" "cut a 90s teaser"

# export an edit by name and get a download URL
eddie export "$id" "Teaser" --format mp4

The id new prints is a share id — the handle every later command takes. It is not the same as the import’s internal project id, which the CLI never surfaces.

Already have a project and just want to add more footage to it?

terminal
eddie import "$id" ./more-footage/*.mov

Using the SDK instead

Everything above is also a method call, for embedding in your own backend rather than shelling out. The package ships no top-level entry point today — import the SDK build directly:

script
import { Eddie } from "@eddieai/cli/dist/sdk.js";

const eddie = new Eddie({ apiKey: process.env.EDDIE_API_KEY });

const { shareId } = await eddie.createAndImport({
  files: [{ path: "./footage/interview.mov" }],
});

for await (const event of eddie.prompt(shareId, "cut a 90s teaser")) {
  if (event.type === "reply") process.stdout.write(event.text);
}

const { url } = await eddie.export(shareId, "Teaser", "mp4");
console.log(url);
  • createAndImport and addMedia take an onProgress callback in their second argument — the same stages the CLI prints to stderr, as a function call instead of a line of text.
  • prompt is an async generator, not a promise. It yields activity, reply and notice events as the run progresses, then a final done event with the run’s outcome.
  • export only accepts "mp4" today. The command reference has the full method list, with every argument and return shape.