Ziewziew

Documentation

Everything you need to build with Ziew.

CLI Reference

ziew init

Create a new Ziew project.

ziew init <project-name> [options]

Options:
  --style=<name>    Include a CSS framework (pico, water, simple, mvp, tailwind)
  --template=<name> Use a game template (phaser, kaplay, three)

Examples:
  ziew init myapp
  ziew init myapp --style=pico
  ziew init myapp --style=tailwind
  ziew init mygame --template=phaser

ziew dev

Start development server with hot reload.

ziew dev

Watches for changes in HTML, CSS, and JS files and
automatically reloads the webview.

ziew build

Build the project for the current platform.

ziew build [options]

Options:
  --release    Build with optimizations (smaller binary)

Examples:
  ziew build
  ziew build --release

ziew ship

Build optimized binaries for all platforms (cross-compilation). Always uses release optimizations.

ziew ship [options]

Options:
  --target=<target>    Build for specific target only

Targets:
  windows, macos, macos-x64, macos-arm64, linux, all

Note: ship always builds with ReleaseSmall optimization.
Use 'ziew build --release' for single-platform release builds.

Examples:
  ziew ship                   # All platforms
  ziew ship --target=windows  # Windows only
  ziew ship --target=macos    # macOS x64 only

ziew plugin

Manage project plugins. Plugins are configured in ziew.zon.

ziew plugin <command> [plugins...]

Commands:
  add <plugins...>     Enable plugins for this project
  remove <plugins...>  Disable plugins
  list                 Show enabled and available plugins

Examples:
  ziew plugin list
  ziew plugin add sqlite notify
  ziew plugin remove notify

Style Presets

Built-in CSS frameworks. Use with --style flag.

pico

Minimal CSS framework for semantic HTML

picocss.com

water

A drop-in collection of CSS styles

watercss.kognise.dev

simple

A classless CSS framework

simplecss.org

mvp

Minimalist stylesheet for HTML elements

mvp.css

tailwind

Tailwind CSS (Play CDN - no build required)

tailwindcss.com
# Create project with Pico CSS
ziew init myapp --style=pico

# Or with Tailwind
ziew init myapp --style=tailwind

JavaScript API

Built-in APIs available in every Ziew app.

ziew.fs

File system operations.

// Read a file
const content = await ziew.fs.readFile('./data.txt');

// Write a file
await ziew.fs.writeFile('./output.txt', content);

// List directory
const files = await ziew.fs.readDir('./docs');

ziew.ai

Local AI inference. Enable with ziew plugin add ai (requires llama.cpp).

// Check if AI is available
if (ziew.ai.available()) {
  console.log('AI ready!');
}

// Text completion (returns full response)
const response = await ziew.ai.complete('Explain quantum computing', {
  maxTokens: 256  // Optional, default: 256
});

// Streaming response (async generator)
for await (const token of ziew.ai.stream(prompt, { maxTokens: 512 })) {
  output.textContent += token;
}

Installation

# Install llama.cpp
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
cmake -B build -DLLAMA_CURL=OFF
cmake --build build
sudo cmake --install build

# Enable AI plugin
ziew plugin add ai

Model Setup

Place any .gguf model in ~/.ziew/models/. Auto-detected on startup.

# Create models directory
mkdir -p ~/.ziew/models

# Download a model (example: TinyLlama)
wget -O ~/.ziew/models/tinyllama.gguf \
  https://huggingface.co/TheBloke/TinyLlama-1.1B-Chat-v1.0-GGUF/resolve/main/tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf

ziew.lua

Lua scripting for backend logic. Enable with ziew plugin add lua (requires LuaJIT).

// Check if Lua is available
if (ziew.lua.available()) {
  console.log('Lua ready!');
}

// Call a Lua function (returns string result)
const result = await ziew.lua.call('processData', arg1, arg2);

Lua Backend (backend.lua)

backend.lua
-- backend.lua
function greet(name)
  return "Hello, " .. tostring(name) .. "!"
end

function processData(a, b)
  return tostring(tonumber(a) + tonumber(b))
end

Installation

# Ubuntu/Debian
sudo apt install libluajit-5.1-dev

# Enable Lua plugin
ziew plugin add lua

ziew.shell

Execute shell commands.

// Run a command
const output = await ziew.shell.exec('git status');

// Spawn a process
const proc = await ziew.shell.spawn('npm', ['install']);

ziew.dialog

Native dialogs.

// Open file picker
const path = await ziew.dialog.open({ filters: ['*.txt', '*.md'] });

// Save dialog
const savePath = await ziew.dialog.save({ defaultName: 'document.txt' });

// Alert
await ziew.dialog.alert('Operation complete!');

Platform Info

console.log(ziew.platform); // 'linux', 'macos', or 'windows'
console.log(ziew.version);  // '0.2.0'