Lousho MCP server
2026년 11월 13일 커밋Node process 내에서 오프라인 CI 평가, 지속 가능한 실행(durable execution), 그리고 human-in-the-loop 승인 기능을 지원하는 TypeScript AI agent SDK입니다.
다른 이름 LinuxDevil/lousho
- 스타
- 9
- Tools
- —
- 다운로드, 30일
- —
- 최신 버전
- —
- 마지막 커밋
- 2026년 11월 13일
- 라이선스
- MIT
Lousho MCP란?
Lousho은(는) MCP server입니다. Node process 내에서 오프라인 CI 평가, 지속 가능한 실행(durable execution), 그리고 human-in-the-loop 승인 기능을 지원하는 TypeScript AI agent SDK입니다.
프로젝트 README에서 생성된 요약
Lousho MCP server 정보
lousho는 소프트웨어 엔지니어가 로컬 Node.js 환경에서 TypeScript AI agent를 개발하고 테스트할 수 있도록 지원합니다. 이 SDK를 사용하면 호스팅된 런타임 없이 자신의 process에서 실행되는 에이전트를 구축할 수 있어 Docker 또는 Cloudflare Workers와 호환됩니다. 또한 특정 래퍼를 통해 Vercel AI SDK와 통합되므로 기존의 models와 tools를 단계적으로 마이그레이션할 수 있습니다.
테스트는 독특한 평가 시스템을 통해 이루어집니다. 실제 실행을 한 번 기록한 후, lousho eval 명령어를 사용하여 CI 환경에서 오프라인으로 재생할 수 있습니다. 이를 통해 지속적 통합 과정에서 API 키를 사용할 필요가 없습니다. 또한 이 SDK는 지속 가능한 실행을 지원하므로, agent.resume()을 사용하여 SQLite 또는 Cloudflare KV와 같은 저장소로부터 중단된 작업을 이어서 수행할 수 있습니다. 민감한 작업의 경우, tools에 needsApproval을 설정하여 사람이 승인할 때까지 실행을 일시 중지할 수 있습니다.
활용 사례
- 1오프라인 CI 에이전트 테스트기록된 tool-call 궤적을 재생하여 API 키를 사용하지 않고도 지속적 통합 파이프라인에서 에이전트 평가를 수행합니다.
- 2중단된 작업 복구시스템 충돌이나 중단이 발생한 후에도 장시간 실행되는 에이전트 프로세스가 중단된 지점부터 계속 실행될 수 있도록 보장합니다.
- 3human-in-the-loop 워크플로우 구현자동화된 에이전트 실행을 일시 중지하고 사람이 특정 tool 실행을 수동으로 승인할 때까지 대기합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
자동 검사
2026년 11월 14일에 실행됨전체 보고서 →아직 인증되지 않았습니다. 서버는 80점 이상의 점수, 심각한 결함 없음, 그리고 검사에 충분한 데이터를 갖추어야 합니다. 검사 방식 · 점수를 높이기 위해 수정할 항목
- 소스 저장소 연결 및 접근 가능linuxdevil/lousho is public and reachablegithub.com/linuxdevil/lousho ↗통과
- 패키지가 이 저장소를 소스로 명시검사되지 않음
- 빌드 출처(Sigstore 증명)검사되지 않음
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-11-13github.com/linuxdevil/lousho ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음검사되지 않음
- 패키지 및 해당 종속성에 중요한 보안 권고 없음검사되지 않음
- 모델에 대한 숨겨진 지침 없음0 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기Lousho — TypeScript AI agent SDK
TypeScript AI agents you can test in CI, pause for approval, and resume after a crash. Runs in your own Node process.

Why Lousho
- Test agents in CI without an API key.
lousho evalrecords a real run once, replays it with no network, and reports when the tool-call trajectory drifts. Evals - Resume after a crash. Give the agent a store and
agent.resume()finishes an interrupted run. Tool calls that already have a result do not run again. Durable execution - Pause for a human. A tool marked
needsApprovalpauses the run. Another request, or with a durable store another process, can approve it later, and the run continues where it stopped. Approvals - Runs in your own Node process. There is no hosted runtime.
lousho buildtargets a Node server, Docker or Cloudflare Workers, andlousho studioruns on your machine. Deployment - Works with the Vercel AI SDK.
fromAiSdk()andfromAiSdkTools()wrap AI SDK models and tools, so you can move over one piece at a time. Migrating from the AI SDK
Try it in 60 seconds, no API key
You need Node.js 22.19 or newer and a network connection to install packages. You do not need an API key.
npm create lousho@latest my-agent -- --yes
cd my-agent
npm test
--yes picks the defaults: the minimal template and the OpenAI provider. npm test runs the project's tests on a mock model, offline.
Now add an eval. Save this as src/weather.eval.ts:
import { createAgent, defineEval, defineTool } from 'lousho';
import { mockModel } from 'lousho/testing';
import { z } from 'zod';
const getWeather = defineTool({
name: 'get_weather',
description: 'Current weather for a city',
input: z.object({ city: z.string() }),
execute: async ({ city }) => ({ city, tempC: 21, sky: 'sunny' }),
});
defineEval({
name: 'weather advice',
agent: () =>
createAgent({
instructions: 'Check the weather before giving advice.',
tools: [getWeather],
provider: mockModel([
{ toolCalls: [{ name: 'get_weather', args: { city: 'Lisbon' } }] },
{ text: 'It is sunny and 21°C. Wear a T-shirt.' },
]),
}),
async test(t) {
await t.send('What should I wear in Lisbon today?');
t.completed();
t.calledTool('get_weather', { args: { city: 'Lisbon' } });
t.maxSteps(4);
},
});
Then run it:
npx lousho eval
EVAL CASE RESULT SCORES DURATION
weather advice - PASS - 14ms
1 eval(s): 1 passed, 0 failed, 0 with soft failures (14ms)
To test against a real model, use model: 'openai/gpt-4.1-mini' in place of provider, set your key and record once. This step needs the key. Commit the cassettes it writes. CI then replays them with no network and no key:
npx lousho eval --record
npx lousho eval --replay
npx lousho eval --drift
--drift re-records each case and shows where the tool calls, arguments or step count changed. See Record, replay and drift.
How it compares
| Lousho | |
|---|---|
| Where it runs | In your own Node process. No hosted runtime. |
| Tests without an API key | mockModel scripts, and recorded cassettes that lousho eval --replay plays back offline |
| Crash recovery | agent.resume() on memory, file, SQLite or Cloudflare KV stores |
| Human approval | needsApproval pauses the run; with a durable store, another process can resume it |
| License | MIT |
For a side-by-side look at the Vercel AI SDK, OpenAI Agents SDK, Mastra and LangGraph.js, see the comparison page.
Installation
Requires Node.js 22.19 or newer. To start a new project, see Try it above. To chat with that agent, copy .env.example to .env, put your API key in it and run npm run dev.
To add Lousho to an existing project:
npm install lousho ai@^7.0.0 zod @ai-sdk/openai@^4.0.0
See Installation for other providers. npx lousho doctor checks your setup and prints a fix for anything missing.
Quickstart
This file uses top-level await, so it must be an ES module (.mts, or "type": "module" in package.json). Set OPENAI_API_KEY to run it.
import { createAgent, defineTool } from 'lousho';
import { z } from 'zod';
const getWeather = defineTool({
name: 'get_weather',
description: 'Current weather for a city',
input: z.object({ city: z.string() }),
execute: async ({ city }) => ({ city, tempC: 21, sky: 'sunny' }),
});
const agent = createAgent({
model: 'openai/gpt-4.1-mini',
instructions: 'You are a travel assistant. Check the weather before giving advice.',
tools: [getWeather],
});
const { text } = await agent.send('What should I wear in Lisbon today?');
console.log(text);
Agent folders
An agent can also be a folder, which you run with npx lousho dev ./my-agent:
my-agent/
├── agent.json # Optional: model, permissions, limits
├── instructions.md # The system prompt
├── tools/ # defineTool() tools
└── skills/ # Instructions loaded on demand
Loading a folder runs its code, so only load ones you trust. See Agent directories.
Features
- MCP: connect to MCP servers, or serve your agent as one. MCP
- Multi-agent: sub-agents that run in parallel, and handoffs to specialists.
- UI: bindings for React, Vue and Svelte, plus AI SDK
useChatand Next.js routes. - Tracing: OpenTelemetry GenAI spans and a local trace viewer. Observability
- Agent Forge:
lousho studioopens a local visual canvas, run debugger and chat. Agent Forge - Self-healing (experimental):
lousho improveturns an agent's failed runs into tested edits to its instructions and skills, applies one that passes (or queues it for a person), and rolls it back on a regression. Self-healing - Workspaces (experimental):
lousho/workspacesholds the contracts for a workspace of pages, harnesses and shared policy: schemas, validation, harness composition and typed authoring operations. Workspaces - Coding agents: workspace tools, permission rules and starter kits from
lousho add. Build a coding agent
Documentation
The full guides are at lousho.com, in English and Arabic. Good places to start: Quick Start, Tools, Providers, CLI and Troubleshooting.
Coding agents can read the docs from node_modules/lousho/docs, indexed by llms.txt. The repo also has every page in one file, llms-full.txt.
Examples
Most examples run offline with a mock provider. The examples index has the full list and how to run each one. A few to start with:
- ops-pipeline: monitor alert, Slack button, human approval, fixer agent, gated GitHub PR
- coding-harness: a coding agent with checkpoints, permission rules and a loop guard
- deep-research: parallel researcher sub-agents and a cited report
- support-desk: triage handoffs and an approval-gated refund tool
Status
Alpha. The API may change before 1.0. Pin a version. Upgrading covers the breaking changes between alphas and how to move your code.
Community
- Questions and ideas: GitHub Discussions.
- Bugs and feature requests: GitHub issues.
- Arabic docs: lousho.com/ar.
Contributing
Contributions are welcome. See CONTRIBUTING.md for setup and the checks a pull request must pass. To report a vulnerability, see SECURITY.md.
License
MIT © Ali Mohammad
Lousho MCP 질문
API 키 없이 CI에서 에이전트를 테스트할 수 있나요?
네, lousho eval을 사용하여 실제 실행을 한 번 기록한 뒤, CI 환경에서 네트워크와 키 없이 해당 기록을 재생할 수 있습니다.
에이전트 실행 중 충돌이 발생하면 Lousho는 어떻게 처리하나요?
Lousho는 agent.resume()을 통해 지속 가능한 실행을 제공합니다. 이를 통해 이미 결과가 나온 tool calls를 다시 실행하지 않고 중단된 실행을 완료할 수 있습니다.
Lousho를 사용하려면 호스팅된 런타임이 필요한가요?
아니요, Lousho는 사용자의 Node process에서 실행되며 Node server, Docker 또는 Cloudflare Workers를 대상으로 할 수 있습니다.
Vercel AI SDK와 함께 사용할 수 있나요?
네, fromAiSdk()와 fromAiSdkTools()를 사용하여 AI SDK의 models와 tools를 래핑함으로써 점진적으로 마이그레이션할 수 있습니다.