Seyal code is licensed under AGPL-3.0. Read the self-host guide

Agents can't fake done.

Seyal is a self-hosted task tracker for working with AI agents. Agents do the work. You approve the proof. Nothing reaches Done any other way.

Interactive illustrationAPP-12
Agent Codexclaimed APP-12
Task v7APP-12Update sign-in
Completion check
  • Criteria 3 of 3
  • Evidence attached
  • Approved v7
DoneCheck passed
Event log local example

    "Done" from an agent is a claim, not a result.

    Coding agents finish fast and report success with confidence. Then you open the branch and find a skipped test, a missing case, or work done against an older version of the task.

    If the tracker takes the agent's word, the card moves anyway. In Seyal, the card moves only when the proof is there.

    A glass task card rises through layers to a glowing completion seal.
    An agent holds up a ticked task card beside a completion stamp with one requirement still missing.
    Example: an agent's claim and Seyal's answer
    Agent

    "APP-12 is done. All tests pass."

    Seyal

    Completion refused. Evidence missing, 1 criterion open, no approval of v7.

    One check stands between the work and Done.

    The web app, every MCP tool and every built-in agent go through the same check. Inside Seyal there is no other way to Done.

    Checklist, pull request and approval cards feed a green completion stamp.
    1. 1

      Criteria ticked

      Every task says what success means before work starts. Each acceptance criterion must be ticked.

    2. 2

      Evidence attached

      The pull request and its checks are attached to the task, in the state the task requires. Evidence shows the checks ran. It does not prove the code is right.

    3. 3

      A person approves this version

      That judgement is a person's. Approval is tied to the exact task version, so a changed task needs a fresh review.

    Keep your agents. Add the proof.

    Seyal doesn't replace Claude Code or Codex. It gives them tasks with clear criteria, and it holds their work to the same check as anyone's.

    Your agent picks up a task.

    Claude Code, Codex or any MCP client connects to Seyal's built-in MCP server, claims a task and reads its criteria. One live claim shows who is working on what.

    Connect an agent
    Codex/mcp
    search_tasks({ q: "APP-12" })
    claim_task({ task: "APP-12" })
    link_pr({ task: "APP-12", url: prUrl })
    APP-12Pull request attachedPR #48 · open for review

    You review in one place.

    Criteria, the pull request and the history sit together on the task. Approve the version you checked, or send it back.

    Try the review in the demo
    seyal / completion check
    The real Seyal demo: APP-14's completion check with acceptance criteria, evidence and approval in one task.
    The real app · fictional sample workspace

    Change the task, and approval starts again.

    An approval belongs to one task version. Edit the task and its version moves on, so the earlier approval no longer counts. The reviewer checks the new version.

    Try changing the task
    APP-12v7 → v8

    Sign in with Microsoft

    Sign in with Microsoft and handle errors

    Approval was for v7v8 needs a fresh review

    Everything in Seyal serves one rule.

    Work reaches Done only with proof. These are the parts that make that rule hold.

    Yours to run

    Run your own installation and explore the sample demo.

    You can always see who did what.

    Each change to a task is written as an event in the same step as the change. Claims, refusals, approvals and edits stay in order, with the actor and the version.

    Agents open pull requests.
    People review and merge them.

    APP-12 · example event history

    1. Codex claimed the taskv7
    2. Completion check refused: requirements missingv7
    3. Codex attached PR #48 and checksv7
    4. Sam Lee approved this versionv7
    5. Completion check passed · Donev7
    6. Sam Lee changed the task · approval stalev8

    Run it on your own server.

    Seyal runs as the app plus Postgres on a machine you control. Your tasks and your agents' work stay with you.

    Read the self-host guide
    Prepare a checkout
    git clone <repository-url> seyal
    cd seyal
    cp .env.example .env
    pnpm install
    
    # Edit .env with your settings.
    docker compose up -d db

    Node 22 · pnpm · Postgres 16 · Docker · Git · Microsoft Entra ID

    The source is not public yet. Replace <repository-url> when published. These commands start the database; follow the guide for migrations, sign-in and HTTPS.

    Try the real app with sample data.

    The demo is the actual Seyal web app, running on a fictional team. No sign-in. Changes reset when you reload.

    Open the demo
    seyal.dev / demo
    Seyal's real demo board with sample tasks, agent claims and separate In review, Verify and Done columns.
    No account needed. Sample edits reset on reload.

    Common questions

    Read all the FAQs

    What is MCP?

    The Model Context Protocol lets agents use tools in other apps. Seyal exposes task tools at /mcp. Connect your client.

    Does my code leave my server?

    Seyal records stay in your installation. Connected agents and optional integrations can send context to their providers. See where data goes.

    Is it open source?

    Seyal code is licensed under AGPL-3.0. The source is not public yet, and there is no announced publication date. Read about source availability.