📚 Comprehensive Documentation

We've created a complete documentation site with guides for every aspect of CryptArtist Studio.

Browse Full Documentation →

📄 The .CryptArt File Format

The .CryptArt file format is the universal project file for all CryptArtist Studio programs. It is a JSON file with the extension .CryptArt and the registered type name "CryptArtist Art".

The format was designed with one overriding goal: it must never need a base format upgrade. The envelope schema is stable forever. Any .CryptArt file ever created will always be readable by any version of CryptArtist Studio.

Required Fields

Only three fields are required in every .CryptArt file:

FieldTypeDescription
$cryptart1 (number)Magic key. Identifies the file and its envelope version. Always 1.
programstringFree-form string identifying which program created the file.
dataobjectProgram-specific payload. Opaque to the envelope.

Minimal Example

my-project.CryptArt
{
  "$cryptart": 1,
  "program": "media-mogul",
  "data": {}
}

Recommended Fields

FieldTypeDescription
namestringHuman-readable project name
createdAtstringISO-8601 creation timestamp
updatedAtstringISO-8601 last-save timestamp
appVersionstringVersion of CryptArtist Studio that wrote the file

Compatibility Contract

RuleDescription
Readers MUSTIgnore unknown top-level keys
Readers MUST NOTFail if optional keys are missing
Writers MUSTAlways include the 3 required keys
Writers SHOULDPreserve unknown keys when re-saving a file

Known Program IDs

Program IDProgram Name
media-mogulMedia Mogul
vibecode-workerVibeCodeWorker
demo-recorderDemoRecorder
valley-netValleyNet
game-studioGameStudio

Any string is valid as a program ID. Third-party programs can use their own IDs without any changes to the format.

Full Example

full-project.CryptArt
{
  "$cryptart": 1,
  "program": "vibecode-worker",
  "name": "My Web App",
  "createdAt": "2026-03-13T17:00:00.000Z",
  "updatedAt": "2026-03-13T18:30:00.000Z",
  "appVersion": "0.1.0",
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "meta": {
    "author": "Matt",
    "email": "Matt@MattyJacks.com",
    "website": "https://mattyjacks.com",
    "tags": ["typescript", "react"],
    "license": "MIT"
  },
  "data": {
    "rootPath": "/home/matt/projects/webapp",
    "openFiles": [
      { "path": "src/App.tsx", "name": "App.tsx" }
    ],
    "activeFile": "src/App.tsx",
    "aiProvider": "openai",
    "model": "gpt-4o"
  }
}

💻 CLI Reference

Every feature in CryptArtist Studio is accessible from the command line. The CLI uses a cryptartist <command> [options] pattern.

Global Commands

terminal
# Show version
$ cryptartist --version

# Show help
$ cryptartist --help

# Launch specific program
$ cryptartist launch media-mogul
$ cryptartist launch vibecode-worker
$ cryptartist launch demo-recorder
$ cryptartist launch valley-net
$ cryptartist launch game-studio

Project Commands

terminal
# Create a new project
$ cryptartist new --program media-mogul --name "My Video"

# Open an existing project
$ cryptartist open project.CryptArt

# Show project info
$ cryptartist info project.CryptArt

# Export project to different format
$ cryptartist export --format mp4 --output video.mp4

Media Commands

terminal
# Import media from Pexels
$ cryptartist media import --source pexels --query "ocean waves"

# Import local file
$ cryptartist media import --source local --path video.mp4

# List media in project
$ cryptartist media list

# Probe media file info
$ cryptartist media probe video.mp4

AI Commands

terminal
# Generate a video from prompt
$ cryptartist ai generate --prompt "Travel vlog about Tokyo"

# Chat with AI
$ cryptartist ai chat --message "How do I add transitions?"

# Generate an image
$ cryptartist ai image --prompt "Sunset over mountains"

Server Commands

terminal
# Start the REST API server
$ cryptartist serve --port 3000

# Start with API key auth
$ cryptartist serve --port 3000 --api-key "your-key"

🌐 REST API Reference

Start the API server with cryptartist serve --port 3000. All endpoints accept and return JSON.

MethodEndpointDescription
GET/api/statusServer status and version
GET/api/projectCurrent project info
POST/api/project/newCreate a new project
POST/api/project/openOpen a .CryptArt file
POST/api/project/saveSave current project
POST/api/media/importImport media file
GET/api/media/listList project media
POST/api/media/probeProbe media file info
POST/api/ai/chatSend AI chat message
POST/api/ai/generateAI video generation
POST/api/ai/imageAI image generation
POST/api/exportExport project
GET/api/system/infoSystem information
GET/api/system/logsRecent log entries

Authentication

If the server is started with --api-key, all requests must include the key in the Authorization header:

HTTP Request
GET /api/status HTTP/1.1
Host: localhost:3000
Authorization: Bearer your-api-key-here
Content-Type: application/json

⚙️ Configuration

API Keys

CryptArtist Studio supports multiple AI providers. Enter your keys in the Settings modal (accessible from any program) or pass them via the CLI.

ProviderKey TypeUsed By
OpenAIAPI KeyAll programs - Chat, Image Gen, TTS, Video AI
AnthropicAPI KeyVibeCodeWorker AI Chat, ValleyNet
GoogleAPI KeyVibeCodeWorker AI Chat, ValleyNet
PexelsAPI KeyMedia Mogul - Stock photo/video import
Custom EndpointURL + KeyAny OpenAI-compatible API

FFmpeg Setup

FFmpeg and FFprobe are automatically downloaded on first run. The installer detects your OS (Windows, macOS, Linux), downloads the appropriate binaries, verifies SHA-256 checksums, and stores them in the local AppData directory. No manual installation required.

Godot Integration

GameStudio automatically detects an installed Godot Engine or offers to download it. Configure the Godot executable path in Settings if auto-detection doesn't work.

📝 Logging System

CryptArtist Studio includes a comprehensive logging system with three rolling log files:

FileContentsSize
cryptartist-session.logLast 100 lines since the last app launchRolling, per session
cryptartist-recent.logLast 1,000 lines across all sessionsRolling, 1K lines
cryptartist-full.logEvery log line ever writtenGrows indefinitely

Log levels: DEBUG, INFO, WARN, ERROR, ACTION. The frontend logger sends structured messages to the Rust backend for unified logging across the entire stack.

⌨️ Keyboard Shortcuts

ShortcutActionContext
Ctrl+SSave projectAll programs
Ctrl+OOpen projectAll programs
Ctrl+NNew projectAll programs
Ctrl+ZUndoAll programs
Ctrl+Shift+ZRedoAll programs
Ctrl+,Open SettingsAll programs
EscapeClose modal / Back to launcherAll programs
SpacePlay / PauseMedia Mogul timeline
Ctrl+Shift+FSearch across filesVibeCodeWorker
Ctrl+`Toggle terminalVibeCodeWorker

❓ Frequently Asked Questions

Yes, 100% free. No paywalls, no feature gates, no "pro" tiers. Every feature is available to every user. The project is community-funded through voluntary donations at mattyjacks.com and givegigs.com.
API keys are only needed for AI-powered features (chat, image generation, video AI, etc.). All non-AI features - video editing, screen recording, code editing, file management - work without any API keys. You can add keys for OpenAI, Anthropic, Google, or any compatible endpoint.
CryptArtist Studio runs on Windows, macOS, and Linux via Tauri. Mobile support for Android and iOS is in active development.
The .CryptArt format is a universal JSON project file used by all five programs. It's designed to be permanently forward-compatible - any file ever created will always be readable by any future version of the app. See the format documentation above for details.
CryptArtist Studio runs entirely on your local machine. The only external requests are made when you explicitly use AI features (which call the API provider you configured), Pexels stock media search, or GiveGigs media bucket access. Your project files stay on your disk.
The project is open source on GitHub. Fork the repository, make your changes, and submit a pull request. Bug reports and feature requests are also welcome via GitHub Issues.

Ready to Build?

Download CryptArtist Studio and start creating.