Modo: Open-Source AI IDE with Spec-Driven Development and Agent Hooks

Modo is an open-source AI IDE built as an alternative to tools like Kiro, Cursor, and Windsurf. It's based on the Void editor (itself a fork of VS Code) and adds structured planning workflows on top of existing AI features like chat, inline edit (Cmd+K), autocomplete, multi-provider LLM support, tool use, and MCP integration.
Spec-Driven Development
Unlike typical prompt-to-code workflows, Modo implements a structured approach: prompt → requirements → design → tasks → code. Specs are stored in .modo/specs/<name>/ as three markdown files:
requirements.md- user stories and acceptance criteriadesign.md- architecture, components, and data modelstasks.md- checklist of implementation steps
Create specs with Cmd+Shift+S or by picking Spec mode in the session picker. Choose between feature or bugfix workflows, then requirements-first or design-first approaches. The agent fills each document, you review, then it executes tasks sequentially, marking them as it progresses.
Task Management Features
Open any tasks.md file to see clickable "▶ Run Task" buttons inline for each pending task. A "Run All Pending Tasks" button appears at the top. Running tasks show spinners, completed ones show checkmarks. The agent marks tasks as it works: - [ ] → - [~] → - [x].
Steering Files
Markdown documents in .modo/steering/ inject project rules into every AI interaction. They support three inclusion modes:
always- every interactionfileMatch- when active file matches glob patternmanual- referenced via / commands in chat
Supports #[[file:path]] references to link OpenAPI specs, GraphQL schemas, or other project documentation.
Agent Hooks
JSON configs in .modo/hooks/ automate actions around the agent lifecycle. Example configuration:
{
"name": "Lint on Save",
"version": "1.0.0",
"when": {
"type": "fileEdited",
"patterns": ["**/*.ts"]
},
"then": {
"type": "runCommand",
"command": "npx eslint --fix ${filePath}"
}
}Supports 10 event types: fileEdited, fileCreated, fileDeleted, promptSubmit, agentStop, preToolUse, postToolUse, preTaskExecution, postTaskExecution, userTriggered. Two action types: askAgent or runCommand. Pre-tool hooks can deny execution, with circular dependency detection built in.
Additional Features
Autopilot/Supervised toggle appears as a status bar pill, switching between autonomous agent actions and paused-for-approval mode. Wired directly to auto-approve settings for edits, terminal commands, and MCP tools. Supports parallel chat sessions as tabs, each with its own thread, context, and history.
This approach is useful for developers who want more structured AI-assisted coding with persistent task tracking and project-specific rule injection.
📖 Read the full source: HN LLM Tools
👀 See Also

200+ App Design Specs in Markdown – Drag into Claude or Cursor for Exact UI Clones
A curated library of 200+ popular apps as structured markdown design specs with exact hex codes, type scale, spacing, every screen state, and nav graph. Drop into Claude, Cursor, or any AI agent to generate SwiftUI, Jetpack Compose, or Expo UI clones without guessing colors or spacing.

GlycemicGPT: Self-Hosted AI Diabetes Monitor with BYOAI and Plugin SDK
GlycemicGPT is an open-source, self-hosted platform that connects Dexcom G7 and Tandem pumps to an AI analysis layer. It provides daily briefs, meal analysis, conversational chat, and configurable alerts, all on your own hardware.

bad-ass-mcp: Free, Open Source MCP for Native Desktop GUI Control via Accessibility API
bad-ass-mcp is an open source MCP server that lets Claude and other AI agents control macOS, Windows, and Linux desktops using the native accessibility layer — no screenshots, no look-move-look loops. Free alternative to Computer Use, Operator, or UiPath.

MCP server for depth-packed codebase context
A new MCP server packs codebase context at 5 depth levels within token budgets, addressing the problem where AI coding agents either load too few files or get flat repo maps without actual content.