Skip to content

sahin/clear

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clear

Clear

English to Machine Code. Nothing between.

Website · Language Spec · Examples · Docs


The Vision

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.

Goals

  • 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 .clear file 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.

Status

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

Quick Look

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.clear

That's it. No boilerplate. No imports. No framework. Describe the system, run the file.

Language Overview

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

Examples

See the examples/ directory for complete use cases:

Documentation

Contributing

Clear is in early design. Contributions to the language spec, examples, and documentation are welcome.

  1. Fork this repository
  2. Create your branch (git checkout -b my-proposal)
  3. Commit your changes (git commit -am 'Propose: new keyword for X')
  4. Push to the branch (git push origin my-proposal)
  5. Open a Pull Request

See CONTRIBUTING.md for details.

Community

License

Clear is distributed under the MIT License.

About

The Clear Programming Language — the spec is the code.

Topics

Resources

License

Code of conduct

Contributing

Stars

16 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors