GET STARTED
Get Started
Start building with Eiffel + AI in under an hour.
What You'll Need
- A computer (Windows, macOS, or Linux)
- About 45 minutes
- Willingness to try something different
Step 1Install EiffelStudio
EiffelStudio is the development environment for Eiffel. It's free for open-source development.
Run the installer, accept defaults. Add EiffelStudio to your PATH. Restart your terminal.
Download the DMG, drag to Applications. May need to allow in Security preferences.
Extract the archive to /opt or your preferred location. Set ISE_EIFFEL and update PATH.
Step 2Get AI Assistance
The workflow shines with AI assistance. We recommend:
- Claude (Anthropic) — What we use. Excellent for Eiffel with proper reference documentation.
- Claude Code CLI — Direct file access, runs compiler.
- Other AI assistants work, but may need more guidance.
Step 3Explore the Libraries
AI works best with context. Browse the library source code to understand Eiffel patterns.
Key things to have AI learn:
README.mdfiles — Usage examples*_test.efiles — Working test patterns- Contract patterns — require/ensure/invariant
Step 4Build Something
Start simple. Here's a first project:
Create a simple calculator class with Design by Contract.
It should have add, subtract, multiply, divide.
Each feature should have preconditions and postconditions.
Paste this to your AI assistant along with the reference docs. Watch what happens.
What to Expect
First hour
- Environment setup
- First successful compile
- "Hello World" with a contract
First day
- Comfortable with basic syntax
- Understanding preconditions/postconditions
- AI generating useful code
First week
- Building real features
- Contracts catching bugs
- Productivity increasing
Explore the Libraries
Want to see real code? Clone any of our libraries:
- simple_json ↗ — Good starting point, clear patterns
- simple_htmx ↗ — See fluent interface design
- simple_alpine ↗ — See library layering
All have tests you can run to see contracts in action.
Need Help?
- Eiffel community: eiffel.org/community ↗
- Our repos: Issues welcome on GitHub
- Direct questions: See our contact info