TIENSecurity for AI-built apps

Security for AI-built apps

Make your vibe-coded app safer before it ships.

Tien runs trusted security scanners locally, translates their output into a clear fix list, and gives you—or your coding agent—a repeatable way to verify the result.

Runs locallyOpen sourceAgent-readyPassive by design
run / release-284verified
project./vibe-apprunnerlocal / agent sessionscoperepository approved
$ tien scan repo --path .
 secrets / dependencies / insecure code
$ tien report --type md before.tien
 evidence and remediation, ready to review
$ tien diff before.tien after.tien
 1 new / 5 fixed / 8 unchanged
0code uploads
3engines
1fix loop
AI-built appLocal scanClear evidenceHuman or agent fixVerified delta

From generated code to verified change

One security loop. Four visible steps.

Each stage has its own evidence view, so scope, scan, interpretation, and verification never blur into one generic dashboard.

01 / Scope

Point Tien at the app you own.

Start with one repository. Add deployed URLs only with an exact-host, scoped, expiring authorization selected by the operator. Tien keeps that boundary explicit for people and agents.
RUN SCOPEapproved
repository./vibe-app
explicit input
tienlocal runner
exact-host grant
surfaceapp.example.com
No inferred domains. No repository upload.

02 / Scan

Run the right checks together.

Tien coordinates secret detection, dependency advisories, and static analysis locally. Optional passive URL checks cover the web boundary without exploitation.
LOCAL ENGINES3 / 3 ready
GL

Gitleakssecrets and credentials

04
OS

OSV-Scannervulnerable dependencies

03
SG

Semgrepinsecure code patterns

05
12 raw signals→ normalized locally

03 / Understand

Read one finding language.

Every result gets a stable identity, severity, confidence, target, evidence, and remediation so you do not need to learn each scanner before fixing the app.
FINDINGSprioritized
HIGH

Secret in client bundlesrc/lib/client.ts:18 · confidence high

open
MED

Vulnerable package pathpackage-lock.json · fix version available

open
LOW

Missing response policyapp.example.com · passive evidence

open
nextverify evidence → fix root cause → test

04 / Verify

Ship the delta, not a guess.

Scan again after the human or agent change. Tien separates fixed, new, and unchanged findings so the final decision is based on evidence.
BASELINE DIFFreview ready
fixed05removed from current run
new01requires review
unchanged06still visible

Change verifiedtests passed · evidence saved

human decision

Capabilities

Security tools translated into one fix list.

Start without advanced security knowledge. Tien keeps each engine focused, then translates the result into evidence that people and coding agents can act on carefully.

Find

Catch what AI generation can miss

Run Gitleaks, OSV-Scanner, and Semgrep together without sending proprietary code to a Tien dashboard.

Exposed secrets · vulnerable packages · insecure patterns
Explain

Turn scanner noise into a fix list

Normalize every engine into the same finding model with severity, confidence, evidence, location, and remediation.

One vocabulary humans and agents can read
Verify

Prove the change removed the cause

Normalize findings into stable fingerprints so teams can diff releases instead of rereading an entirely new report.

Gob · JSONL · Markdown · JSON · SARIF · HTML
Connect

Give coding agents a safe tool

Use Tien's local MCP server or structured JSON, JSONL, SARIF, and Markdown so coding agents and CI can consume complete matching evidence.

MCP · explicit root · operator-owned startup policy · local execution

Built for people. Callable by agents.

Give your coding AI a security tool with boundaries.

Codex, Claude Code, Cursor, Copilot, or another MCP-compatible agent can call Tien's local server, read structured findings, propose focused changes, and verify the diff. Scope stays explicit, repository analysis stays local, and public web targets fail closed behind operator-owned authorization.

Read the agent guide
AGENT CONTRACTready
scopethis repository only
inputtyped MCP tools
outputall matching findings
decisionverify evidence before edits
finishtest + scan + diff
tien mcp --root /path/to/app

Guardrails are product features

Authorization before traffic. Budgets around execution.

01

Exact-host authorization

Bind a 256-bit challenge to one hostname, the url-scan scope, and an expiry, then publish the grant as a DNS TXT record.

02

Complete scan coverage

Tien imposes no fixed cap on targets, findings, or repository file size. Time, body, retry, redirect, and concurrency budgets stay configurable.

03

All-or-nothing preflight

Every target is authorized before workers, cache reads, or built-in requests. Public URL plugins stay outside this scope and fail closed.

04

No silent scope drift

Private DNS needs an exact-host allowlist, HTTPS transport, a DNS TXT grant, and pinned addresses. Loopback, link-local, CGNAT, metadata, and rebinding paths stay blocked.

Start locally

From zero to evidence in one binary.

Build from source today and follow the guided first scan. Release binaries, Homebrew automation, and the npm wrapper remain visible on the public roadmap.

1git clone https://github.com/seibel777/tien.app.git
2cd tien.app
3go build -o tien ./cmd/tien
4./tien --help
Open the complete installation guide →

FAQ

Clear answers before the first run.

Does Tien upload my source code?

No. Tien is local-first. Repository analysis runs on your machine through local tools or an explicitly configured Docker engine.

Do I need to be a security engineer?

No. Tien gives every signal a consistent severity, location, explanation, evidence, and remediation. You still need to verify context, but you do not need to learn three scanner interfaces before the first useful run.

Can an AI coding agent run Tien for me?

Yes. MCP-compatible agents can call Tien through its local typed server, while other agents can use the CLI and read JSON, JSONL, Markdown, or SARIF. The operator selects the repository root and loads URL authorization once at startup, so the agent cannot replace that policy.

Can Tien scan any public website?

No. Each public hostname needs an exact-host, scoped, expiring authorization through a structured DNS TXT record with a 256-bit challenge. No application route or HTTPS authorization file is required. This is an operational guardrail, not legal permission, so written authorization remains separate. Private and localhost targets are blocked unless the operator explicitly allows a development exception.

Does it replace a penetration test?

No. The current URL scanner performs passive checks and produces security signals. It does not claim exploitation proof or replace a qualified manual assessment.

Which outputs work in CI?

Tien emits SARIF for code-scanning platforms, JSON and JSONL for automation, Markdown for pull requests, and a policy exit code for release gates.