AI Canvas is a local-first creative workspace for AI-assisted content production. It keeps prompts, references, generated media, versions, characters, scripts, and exports together on an infinite canvas while storing project data on your machine.
Early development release (
0.1.0). Project schemas, provider integrations, and interactions can still change. macOS is the primary tested platform; see Platform status before trying Windows or a browser build.
- Manage multiple local projects and import/export
.aicanvasarchives on desktop. - Organize text, images, video, audio, references, and generation results on an infinite canvas.
- Use typed connections so prompts, source media, references, and results keep their product meaning.
- Configure multiple model providers and expose only connected, available routes to the canvas.
- Turn a brief or story into scripts, shots, characters, scenes, and image/video prompts.
- Reuse characters and character asset sets across projects.
- Compose characters, props, cameras, and framing references in a 3D director stage.
- Persist project snapshots, operation logs, tasks, and asset metadata in local SQLite storage.
Provider status is documented in docs/model-sources.md.
| Target | Status | Notes |
|---|---|---|
| macOS desktop | Primary, tested | Current development and release target. |
| Windows desktop | Experimental, not yet verified | The Tauri/Rust/React stack is cross-platform, but this repository does not yet ship or continuously test a Windows build. |
| Local browser development | Supported for contributors | npm run dev starts Vite plus the required Rust storage/model-proxy backend on localhost. |
| Hosted static website | Not supported | The UI depends on local Rust APIs, and archive import/export is desktop-only. Do not deploy the current model proxy as a public gateway. |
Windows users can try a source build after installing the Tauri Windows prerequisites, but should expect platform-specific issues until CI and signed Windows releases are added.
- Node.js 22.6 or newer and npm
- Rust stable toolchain
- macOS: Xcode Command Line Tools
- Windows (experimental): Microsoft C++ Build Tools and WebView2, as described by Tauri
git clone https://github.com/Brewnut-98/ai-canvas-mac.git
cd ai-canvas-mac
npm install
git config core.hooksPath .githooksnpm run devThis starts:
- Vite UI:
http://127.0.0.1:1420 - Rust local backend:
http://127.0.0.1:1421 - Storage health check:
http://127.0.0.1:1421/api/storage/health
The first run compiles Rust dependencies and can take longer.
npm run tauri:dev
npm run tauri:buildThere are no official downloadable binaries yet. Until signed releases are published, build from source and treat the application as development software.
- Open Model Settings from the project home.
- Choose a provider and enter its API key or access credentials.
- Confirm the base URL and run the connection check.
- Return to the canvas and select an available model from a text, image, video, or audio action.
Model calls send credentials to the base URL shown in settings. Verify custom domains before using them.
The repository includes safeguards against accidentally committing credentials:
.env*, private keys/certificates, credential JSON, local data, and.aicanvasarchives are ignored by Git.npm run security:secretsreports only file, line, and finding type; it does not echo secret values..githooks/pre-commitblocks common secret patterns in staged files.- Authorization headers are redacted from model-proxy diagnostic events.
- Provider credentials are application settings and are not included in
.aicanvasexports.
Current limitation: development builds store provider credentials in WebView localStorage. They are kept out of Git and project exports, but have not yet moved to macOS Keychain or Windows Credential Manager. Use revocable, limited, app-specific keys and rotate them regularly.
If a real key ever enters Git history, revoke/rotate it immediately. Deleting the file or adding it to .gitignore is not sufficient.
Local browser development writes to .local-data/ by default. Desktop builds use the OS application-data directory. Inspect projects before sharing them: prompts, references, and generated media may be private even though provider credentials are excluded.
See SECURITY.md for reporting and release-security expectations.
npm run security:secrets
npm test
npm run build
cargo check --manifest-path src-tauri/Cargo.tomlThe tests/ directory is intentionally included: it contains the regression suite and reproducible model-evaluation fixtures, not temporary screenshots.
Architecture and product decisions:
Contributions are welcome. Read CONTRIBUTING.md before opening a pull request.
Core components include Tauri, React, React Flow, Zustand, Three.js, React Three Fiber, Vite, Tokio, Axum, and rusqlite.
The bundled neutral human model comes from Mesh2Motion under CC0-1.0. Complete dependency, asset, and reference-only attribution is in THIRD_PARTY_NOTICES.md.
AI Canvas is released under the MIT License. Third-party components and assets remain under their respective licenses.

