- Category
- AI Agents
- Rank
- No. 1968Tools index
- Pricing
- Open Source
- Type
- AGENT
- Builder
- obra
- GitHub
- 52 stars
- Latest release
- v0.2.0
- Date
About
Lightweight agentic coding environment.
What it does
Lace combines an interactive terminal assistant with an embeddable agent library. The terminal launches an agent process, exchanges newline-delimited JSON-RPC messages, streams responses, and asks users to approve tool access. The agent adds sessions, background shell and subagent jobs, reminders, plugins, conversation compaction, provider integrations, and MCP tools.
Why it's ranked here
Lace shows unusually broad agent infrastructure behind a small terminal surface. Durable event storage, permission prompts, plugin registries, background jobs, session recovery, and context compaction address real operational needs. The main reservation is approachability: no README was available, while installation and configuration involve a private multi-package workspace and several moving parts.
What's good
The architecture separates the terminal client, agent runtime, and wire protocol. Users can approve individual tool requests with the proposed resource and input visible. Plan mode restricts tools to reading and searching. The agent also supports streamed job updates, subagents, reminders, plugins, MCP discovery, session persistence, and an embedded library interface.
Tradeoffs
The supplied repository text provides no README, so setup and everyday usage are not documented here. The root package is private, and the default terminal flow expects either an installed agent executable or a locally built agent package. The runtime also writes protocol and agent logs, maintains session storage, and coordinates several lifecycle systems, increasing operational complexity.
How to use it well
Lace best suits engineers who want a terminal coding agent they can inspect, extend, or embed. Use its approval prompts for supervised execution, plan mode for read-only investigation, and jobs or subagents for longer work. Choose another product if you need a documented turnkey installation or a graphical interface, since neither appears in the supplied text.
Technical notes+
The root package.json defines an ESM TypeScript monorepo with workspaces under packages/* and coordinated build, typecheck, lint, format, and Vitest commands. packages/cli/src/main.ts spawns the agent and communicates through NDJSON over stdio using JsonRpcPeer, handling streaming updates, sessions, timeouts, and permission queues. packages/agent/src/main.ts registers built-in tools, execution tools, compaction, runtimes, and plugins before exposing the RPC server; it also manages logs, shutdown cleanup, recall indexing, and container reaping. packages/agent/src/index.ts exposes an embedded library and server API. packages/agent/src/mcp/index.ts exposes MCP client integration, while packages/ent-protocol/src/index.ts publishes transport, schemas, identifiers, errors, and shared protocol types.
Observed
- License
- Apache-2.0
- Primary language
- TypeScript
- Packaging
- Private ESM monorepo using npm workspaces under packages/*
- Runtime requirements
- Node.js 20.18.3 or newer and Bun 1.2.21 or newer are declared
- Interfaces
- Interactive CLI, embeddable library, NDJSON stdio JSON-RPC server, and MCP client integration
- Provider integrations
- Dependencies include Anthropic, Google GenAI, LM Studio, Ollama, and OpenAI SDKs
- Repository documentation
- No README was available in the supplied repository text
Read from package.json, packages/cli/src/main.ts, packages/cli/src/index.ts, packages/agent/src/main.ts, packages/agent/src/index.ts, packages/agent/src/server.ts, packages/ent-protocol/src/index.ts, packages/agent/src/mcp/index.ts, packages/agent/src/jobs/index.ts, packages/agent/src/helpers/index.ts, packages/agent/src/plugins/index.ts, packages/agent/src/reminders/index.ts, packages/agent/src/compaction/index.ts, packages/agent/src/conversation/index.ts, packages/agent/src/notifications/index.ts.
What it can do
Generate code from natural language prompts
Natural language description of desired functionality → Generated source code
Debug and fix code errors
Code with bugs or errors → Corrected code with fixes applied
Refactor existing code
Existing source code → Improved, restructured code
Explain code functionality
Source code snippets → Plain language explanation of what the code does
Optimize code performance
Inefficient code → Performance-optimized code
Convert code between programming languages
Code in one programming language → Equivalent code in different programming language
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
