English to Machine Code. Nothing between.
Website · Language Spec · Examples · Docs
Traditional software development has too many layers between what you want and what runs:
Traditional: Idea → PRD → Design → Spec → Code (Language) → Assembly → Kernel → Build → Machine Code
Clear: Idea → Clear → Machine Code
Clear eliminates the translation steps. You write what the system should do — in structured English — and it executes. No programming language in the middle. No spec that drifts from the implementation. The spec is the code.
Clear is a programming language where your specification and implementation are the same file. If you can describe what it should do, you have already written it.
Created by Sahin at Lovie — agentic banking. Used in production at Lovie.
- English, not code. Write in structured natural language. No syntax to memorize, no abstractions to learn.
- Directly executable. What you write is what runs. No compilation step, no intermediate representation you need to understand.
- Readable by anyone. A product manager, a designer, or a new engineer can read a
.clearfile and understand what the system does. - One file, full system. Products, data schemas, screens, flows, rules, agents, and skills — all expressed in the same syntax.
- Agent-first. Built for the era where humans describe intent and machines execute it.
Clear is in v0.1 — active language design. The specification is being written. No compiler or runtime exists yet.
| Artifact | Status |
|---|---|
| Language spec | Draft (see spec/) |
| Examples | 10+ real-world use cases (see examples/) |
| Website | Live at sahin.io/clear |
| CLI | Planned |
| VS Code extension | Planned |
| Runtime | Planned |
product NotificationService
name "Notification Service"
version "0.1"
description "Sends transactional notifications across channels"
screen Preferences
title "Notification Preferences"
field channels
type multi-select
options ["email", "sms", "push", "slack"]
default ["email"]
flow SendNotification
trigger event.new_notification
step validate
check recipient exists
check channel is enabled
step deliver
route to channel handler
retry 3 times with backoff
step confirm
log delivery status
notify sender on failure
$ clear run notification-service.clearThat's it. No boilerplate. No imports. No framework. Describe the system, run the file.
Clear uses 12 keywords to describe entire systems:
| Keyword | Purpose |
|---|---|
product |
Top-level system definition |
data |
Schema and data structures |
screen |
UI layout and components |
flow |
Business logic and workflows |
rule |
Constraints and validations |
example |
Test cases and documentation |
agent |
Autonomous AI behavior |
skill |
Reusable capabilities |
api |
External interface definitions |
event |
System triggers and signals |
config |
Environment and settings |
deploy |
Infrastructure targets |
See the examples/ directory for complete use cases:
- Customer Support Agent
- REST API
- MCP Server
- E-commerce Product Page
- Data Pipeline
- Lead Qualification Bot
- Language Specification — formal grammar and semantics
- Design Decisions — why Clear works this way
- Roadmap — what's coming next
Clear is in early design. Contributions to the language spec, examples, and documentation are welcome.
- Fork this repository
- Create your branch (
git checkout -b my-proposal) - Commit your changes (
git commit -am 'Propose: new keyword for X') - Push to the branch (
git push origin my-proposal) - Open a Pull Request
See CONTRIBUTING.md for details.
- GitHub Discussions — questions, proposals, ideas
- Issues — bug reports and feature requests
Clear is distributed under the MIT License.
