Zelyq

agent
Guvenlik Denetimi
Basarisiz
Health Uyari
  • License — License: AGPL-3.0
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 7 GitHub stars
Code Basarisiz
  • rm -rf — Recursive force deletion command in .github/workflows/ci.yml
  • network request — Outbound network request in apps/agent/evals/cases.ts
  • exec() — Shell command execution in apps/agent/evals/checks.ts
  • network request — Outbound network request in apps/agent/evals/checks.ts
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

Open-source AI app builder. Describe an app, watch an agent build it in a real workspace, and edit the result live — on your laptop or your own cloud.

README.md
Zelyq

Zelyq

Vibecoding writes code. Zelyq builds like an engineer.

Try it live → zelyq.com

Video Studio — create videos from a prompt or animate a starting image, then preview and download your results.


Image Studio — generate original images with prompts, reference images, and creative controls.


▶ And checking the build at real mobile, tablet, and desktop widths right in the preview — no resizing the window.


▶ And building a real mobile app — pick Expo — React Native when you create a project and the agent builds native screens (View / Text / Expo Router, not div), previewed in the browser via Expo web.

Most "prompt to app" tools generate something that looks right and leave you to find out where it
isn't. Zelyq's agent plans before it acts, verifies its own work before it calls a turn finished,
tells you plainly what it checked versus what it assumed, and stops to ask instead of guessing when
a request is too vague to build responsibly. It writes files, runs commands, starts a dev server,
and reports back — while you watch every tool call, every file it touched, and the running result,
live.

CI
License
Node
TypeScript
PRs welcome

Live demo · Why an engineer · Quickstart ·
How it works · Modes · Architecture ·
Configuration · Self-hosting ·
Roadmap · Contributing


It behaves like an engineer, not a generator

A code generator's job ends when something compiles. An engineer's job includes knowing what they
actually built, whether it works, and when they don't have enough information to keep going
responsibly. Zelyq's agent is built toward the second one:

  • It verifies before it calls anything done. The moment the model stops asking for tools, Zelyq
    runs the project's own typecheck (or build) and checks the live preview for a crash — automatically,
    not because the prompt asked nicely. A turn that broke something gets handed back to fix, not
    reported as finished.
  • It says what it knows versus what it guessed. Turn on Engineer Mode and every turn that
    changes something states its purpose up front, then separates what it verified (ran, read, tested)
    from what it inferred and what it assumed — instead of one confident-sounding paragraph that blurs
    the three together.
  • It names the alternative it didn't pick. When a real choice existed — an architecture, a
    library, a tradeoff with no obviously-better answer — Engineer Mode has it say what it didn't choose
    and why, in a sentence or two, not silently.
  • It plans before it builds, when the ask is big enough to need one. Architect Mode turns a
    vague request into a real design package first — requirements, decisions with the alternative named
    and why it lost, a data model and API, a DESIGN.md design system, a build plan broken into
    review-sized tasks — and waits for you to say "build it" before writing any code. Then it
    dispatches each task to a bounded builder, has a separate session verify the running app, and
    claims "done" only against a checklist it can show you. Turn on Auto Mode and it runs the
    passes itself, to a hard ceiling, instead of you typing "keep going".
  • It has specialists. After a build verifies, named agents finish the job — each owns a spec
    file it surveys, writes, and implements, and each streams into the chat as a labelled sub-thread.
    The Designer (DESIGN.md — a coherent design system, no generic-AI look), the DevOps
    agent
    (OPERATIONS.md — CI, a Dockerfile, .env.example, deploy config), the Security/QA
    agent
    (QA.md — writes and runs the test suite, runs the security scan), and the Cinematic
    engineer
    (CINEMATIC.md — turns one screen into a scroll-driven film: a hero that scrubs your
    footage frame by frame as you scroll, a pinned reveal, a horizontal story, built to a
    senior-engineer skill). In Engineer Mode you call any of them yourself: "make it look
    professionally designed"
    , "set up CI", "write tests", "make the hero play as I scroll".
    See docs/modes.md.
  • A specialist can pause for something only you have. A cinematic hero is the footage, so the
    Cinematic engineer doesn't fake it against a placeholder: it writes a plain-language brief of
    exactly what to provide, creates the folder, and stops. You drop the file in and reply go — it
    validates what you gave it against the brief and takes it from there. A dispatched pass that asks,
    waits, and resumes from a plan it already wrote.
  • It builds the backend, not just the screen. When a project needs saved data or accounts, the
    agent designs a Supabase Postgres schema with Row-Level-Security written per operation, applies the
    migration, wires the client, and has a separate session verify that a second user genuinely can't
    read the first user's rows. AI features too — a chatbot, an extractor, a classifier — with the
    provider key living in the backend, never shipped to the browser.
  • It builds what was asked, then stops. No invented navbars, no sample-data toggles nobody
    requested, no filling a vague ask with guesses. A request too shapeless to build responsibly gets one
    clarifying question instead of eight files you didn't want.
  • It reaches for expert practice only when a task needs it. A catalog of packaged, senior-level
    skills — frontend engineering, UI/UX design, application security, CI/CD — loads into a turn only
    when its description actually matches, so the agent isn't running a security review on a landing
    page or a deployment checklist on a button.
  • It stops and asks instead of guessing on anything irreversible. Deleting data, an action with no
    undo, a request that's really a conversation ("I want to test you," "how would you build X") rather
    than a spec — Engineer Mode treats these as a reason to ask, not a reason to improvise.

None of this is a black box promise — every mechanism above is real code, not marketing copy: the
verification gate and Engineer Mode both live in apps/agent/src/session.ts
and apps/agent/src/prompt.ts, and docs/agent-behaviour.md
documents exactly how the turn loop decides what to do.


Architect Mode's output for a habit tracker: a full architecture package — decisions, a data model, an API spec, risks, a build plan broken into review-sized tasks — open in the code view, with the agent explaining it's ready for 'build it' before writing a line of application code

Architect Mode on a real request: a full design package, reviewable before any code exists —
not just this one file, the whole architecture/ package on the left.



A restaurant table-booking system built by the Zelyq agent — guest mobile ordering menu with dietary filters and allergen labels — as the build left it: working, but with flat white cards and no consistent visual system The same restaurant ordering menu after the Designer agent applied its DESIGN.md — a coherent dark surface system, the amber accent carried through consistently, real card elevation, and tighter typography
Before — the build, verified and running. Same restaurant system: guest ordering, a kitchen display, floor dispatch, and manager admin, with real allergen and dietary data. After — the Designer agent wrote DESIGN.md and applied it: one dark surface system, the accent colour carried through, real elevation, tighter type. Same content, no functional change.

What it is

Most "prompt to app" tools are a product with an engine hidden inside. Zelyq is the engine, and it is
built so that nothing about it is magic and nothing is locked in:

  • One execution seam. Every filesystem and shell operation goes through a single
    RuntimeDriver interface, so nothing above it knows where the code runs. local — child
    processes on your machine — is the zero-setup default. container is the same with agent shell
    commands and the dev server preview jailed one container per project. remote speaks a
    documented HTTP protocol to a runtime host, and a reference host
    ships in apps/runtime-host; one conformance suite runs against all three drivers, so they are
    provably interchangeable. Isolation is partial — container mode always blocks one project's
    container from reaching another's and blocks the cloud metadata endpoint, but does not otherwise
    filter outbound network access unless you opt into ZELYQ_CONTAINER_EGRESS_ALLOWLIST, which you
    name and maintain yourself. Read
    SECURITY.md before deploying.
  • Bring your own model — cloud or your own machine. Claude, Gemini, OpenAI, DeepSeek, Mistral,
    Grok, Groq, or OpenRouter, chosen with one variable and a key. Or point ZELYQ_PROVIDER=custom at
    anything speaking the OpenAI dialect — Ollama, vLLM, LM Studio, a gateway of your own — and nothing
    about your project ever leaves your network. No proxy, no Zelyq account, no telemetry, either way.
  • Every turn is a change you can inspect and undo. A snapshot before each turn, a diff of exactly
    what changed, one-click revert to any turn — and an audit log of who did what, once more than one
    person is working on an instance.
  • Boring, inspectable storage. SQLite by default (one file), PostgreSQL when you scale. Project
    files are plain files on disk — you can cd into them and take them with you.
  • Web or mobile. Pick React + Vite or Expo — React Native when you create a project.
    The Expo stack previews in the browser via Expo web, and the agent knows it's React Native —
    it builds View/Text/Expo Router, not div. Device and store builds are a separate step.
  • /clone <url> — rebuild a live site, page for page. The agent visits the URL with a real
    browser, walks the pages, and rebuilds it in your project's framework: a REPLICA.md plan
    first, then the screens, with the real images and fonts mirrored in (substitutes logged where
    it couldn't get one), and a screenshot-diff loop against the original. Every fetch is
    SSRF-guarded — public hosts only. Only clone what you own or have permission to reproduce.
  • Image Studio, and an agent that can use it. A signed-in page for generating original images
    from a prompt (OpenAI, Google, or xAI — your key, billed to you), with a private library, reference
    images, and durable history. Switch it on for a project and the agent can generate artwork for the
    app it is building, reuse an image you made yourself, and place either into the project. Anything
    it generates lands in your own library. It is off by default per project, because each image
    spends money, and bounded by a per-hour and a per-conversation limit you set. The agent is told to
    use real stock photography for anything your copy claims is real — a generated landmark is not a
    photograph of it. See Image Studio and
    agent integration.
  • Video Studio. A signed-in page for generating short clips from a prompt, or animating a still
    image — Google (Veo) or xAI (Grok Imagine), your key, billed to you. Text-to-video and
    image-to-video, with the ratio, duration, resolution and audio options each model actually
    supports; a starting frame can be uploaded or picked from your Image Studio library. Jobs are long
    and asynchronous, so they survive a refresh and a server restart: the provider's operation handle
    is persisted, polling resumes on boot, and a submission whose outcome cannot be established says
    so rather than quietly generating (and billing) a second time. Finished clips are saved to your own
    storage — they keep playing after the provider's temporary URL expires — and stream back with HTTP
    range support so seeking works. A finished clip can also be split into a numbered image
    sequence
    — WebP, JPEG, PNG or AVIF, with a poster and a manifest — which is exactly what a
    scroll-scrubbed hero paints onto a canvas. See Video Studio and
    frame export.
  • /video and /cinematic — moving footage in a page, built the right way. /video puts a
    muted loop behind a section; /cinematic makes a section play as you scroll, frame by frame on a
    canvas. The agent generates the footage itself and knows which technique the request calls for —
    a loop when the motion is ambient, a scrubbed sequence when it must follow scroll position, and
    real stock photography for anything the copy claims is real. Off per project until you switch it
    on, because clips cost real money. See
    video agent integration.
  • /figma <link> — build from a Figma frame. Connect Figma in Settings (OAuth; the token
    stays on the server). Paste a frame's link and the agent pulls its node tree, a render, the
    assets, and the design tokens, then rebuilds it in your project — auto-layout becomes
    flexbox, Variables become the Tailwind theme — and diffs against the render.

Status

Early, and honest about it. The end-to-end path works — create a project, prompt the agent, watch
it read and edit files, run a live preview — and the interfaces around it were deliberately settled
first. Expect breaking changes before 1.0.

Two limits worth knowing before you invest time. There is no sandbox in local mode: agent shell
commands run as your own user, so that mode is for one trusted developer on one machine — read the
threat model before deploying it anywhere
else. And container mode's outbound network access is unfiltered by default — it blocks the
cloud metadata endpoint and cross-project reachability, but a project can otherwise reach anything on
your network unless you opt into ZELYQ_CONTAINER_EGRESS_ALLOWLIST yourself. See the
roadmap for what is next and what is explicitly out of scope.

Quickstart

# Requires Node >= 20.12 and pnpm >= 9
git clone https://github.com/CrowPus/Zelyq.git
cd Zelyq
pnpm install

cp .env.example .env
# Claude:  ANTHROPIC_API_KEY=sk-ant-...
# Gemini:  ZELYQ_PROVIDER=google and GEMINI_API_KEY=...
# OpenAI, or your own model on your own machine — see Models below

pnpm dev            # builds the libraries, then web :5173 · server :8787 · agent :8788

Open http://localhost:5173, create a project, and type what you want built. The first preview runs
npm install, so give it a minute.

Prefer containers? docker compose -f docker/docker-compose.yml up — see
self-hosting.

How it works

Three processes over four libraries. The agent never touches your disk directly; it goes through the
runtime driver, which is the seam that makes local and cloud identical.

        ┌───────────────┐
        │  apps/web     │  React + Vite — chat, file tree, editor, live preview
        └───────┬───────┘
                │  REST + WebSocket
        ┌───────▼───────┐
        │  apps/server  │  Fastify. Projects, files, previews, snapshots.
        │               │  Owns the database. Relays agent events to the browser.
        └───────┬───────┘
                │  HTTP + SSE
        ┌───────▼───────┐
        │  apps/agent   │  Runs the model loop, executes tools, streams events.
        └───────┬───────┘
                │  RuntimeDriver  (the only path to disk or shell)
     ┌──────────┴───────────┐
┌────▼─────┐        ┌───────▼────────┐
│  local   │        │     remote     │  container / VM / k8s runtime host
│ child_   │        │  HTTP contract │
│ process  │        │                │
└──────────┘        └────────────────┘
Package Responsibility
@zelyq/core Domain types and the wire protocol — Zod schemas shared by every process
@zelyq/runtime RuntimeDriver plus the local and remote implementations
@zelyq/db Drizzle schema and migrations, SQLite and PostgreSQL
@zelyq/tools The agent's tools, written once against RuntimeDriver

Model vendors sit behind a ModelProvider interface. Each keeps its own native conversation history,
because Anthropic requires thinking blocks echoed back unchanged and Gemini requires thought
signatures preserved across tool calls — flattening both into one format loses what the next request
needs.

Full detail: docs/architecture.md.

Models

Provider ZELYQ_PROVIDER Default model Key
Claude anthropic claude-opus-5 ANTHROPIC_API_KEY
Gemini google gemini-3.7-flash GEMINI_API_KEY
OpenAI openai gpt-5.1 OPENAI_API_KEY
DeepSeek deepseek deepseek-chat DEEPSEEK_API_KEY
Mistral mistral mistral-large-latest MISTRAL_API_KEY
Grok (xAI) xai none — set ZELYQ_MODEL XAI_API_KEY
Groq groq none — set ZELYQ_MODEL GROQ_API_KEY
OpenRouter openrouter none — set ZELYQ_MODEL OPENROUTER_API_KEY
Your own — Ollama, vLLM, LM Studio, anything OpenAI-compatible custom none — set ZELYQ_MODEL none required

Only the selected provider's key is needed. custom also needs ZELYQ_MODEL_BASE_URL pointed at your
endpoint (e.g. http://localhost:11434/v1 for Ollama) — see .env.example. Tested
live against a local, CPU-only 8B model: real tool calls, real self-correction from a validation error,
same behaviour as the cloud providers — just slower without a GPU.

Adding another provider is a registry entry plus one implementation — nothing in the server, the UI,
or the tools changes.

Local vs. cloud

Local Cloud
Database SQLite file (./data/zelyq.db) PostgreSQL (DATABASE_URL=postgres://…)
Project files ./workspace/<project-id> Volume or runtime host storage
Shell and dev servers child_process on your machine Runtime host (ZELYQ_RUNTIME=remote)
Accounts Built in — first account owns the instance Same, with signup closed
Model key Your .env Per user

One variable (ZELYQ_RUNTIME) moves between them. No code changes.

Configuration

Everything is an environment variable, and most of it can also be set in Settings inside the app,
so an instance can be run by someone who never opens a terminal — including entering the model API
key. The environment always wins; fields it supplies appear locked in the UI, labelled with the
variable that supplies them, so the two can never disagree silently.

Keys entered through Settings are encrypted with AES-256-GCM before storage and never sent back to
the browser. Only an instance administrator — the first account created — can see or change them.

Access control

Everyone signs in, and every route checks who they are. Projects belong to a team; your role in that
team decides what you can do:

Role Can
viewer Read projects, files, and conversations
editor Everything above, plus prompt the agent, edit files, and run previews
admin Everything above, plus manage members and delete projects
owner Full control, including the team itself

The first account created owns the instance; set ZELYQ_ALLOW_REGISTRATION=false afterwards so
people join by invitation rather than by signing themselves up.

Roles are not a sandbox. An editor can make the agent run shell commands, which in local mode run
as the server's user — give editor to people you would trust with a shell on that machine.

Security

Local mode runs generated code on your machine with your permissions. It is meant for projects you
trust, on your own machine. It is not a sandbox.

For anything multi-tenant or internet-reachable, run the remote runtime with container isolation. The
threat model, and what Zelyq does and does not protect against, is written out in
SECURITY.md. Read it before you deploy.

Contributing

Issues, discussions, and pull requests are welcome. CONTRIBUTING.md covers the dev
loop, the repository layout, and where a given change usually belongs. Everyone participating follows
the Code of Conduct.

License

Zelyq is open source, licensed under the GNU AGPL-3.0. Run it,
modify it, self-host it, fork it. If you run a modified Zelyq as a service other
people use over a network, the AGPL requires you to offer them your source.

A commercial license — the same code without the AGPL's network-source
requirement — is available for embedding Zelyq in a closed-source product, or for
organisations whose policy blocks AGPL software: [email protected].
Features designated "Zelyq Enterprise" (ee/ paths) are a separate paid
subscription under the Zelyq Enterprise License.

See LICENSING.md for the plain-language version. Releases up to
and including v0.1.0 remain available under Apache-2.0.

© 2026 Dee Empire. "Zelyq" and the Zelyq logo are
trademarks of Dee Empire. Commercial licensing and support: [email protected].

Yorumlar (0)

Sonuc bulunamadi