YP

yiwenlu66/piloty

Developer tools

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기

45 stars 8 forks 품질 50 트렌드 12NOASSERTION

PiloTY: MCP를 통해 PTY 가동을 위한 AI 파일럿 - AI 대리인이 인간 같이 상호 작용하는 맨끝을 통제하는 가능하게 합니다

개요

PiloTY (AI Copilot에 대한 PTY)는 지속적이고 상호 작용하는 맨끝을 제공하는 MCP 서버입니다. 쉘 명령을 실행하기 위해 Claude Code / Codex를 사용하셨다면, 동일한 벽에 충돌해야 합니다. 도구 호출은 무해합니다. 각 통화는 "fresh"이므로 환경 변수가 사라지므로 대화 형 프로그램은 안정적으로 구동 될 수 없으며 긴 실행 프로세스는 에이전트가 생각하고있는 동안 잘라 내거나 나올 수 있습니다. PiloTY는 대리인의 맨끝을 더 인간 같이 행동하기 위하여 존재합니다: 진짜 맨끝에서 무언가를 시작하십시오, 나중에 오고, 계속하십시오. 경고: PiloTY는 무제한 맨끝 접근을 노출합니다. 당신의 키보드를주는 것을 좋아합니다. - 긴 실행 명령: 빌드, 설치, 마이그레이션, 테스트 스위트. 한 번 시작, 나중에 출력 확인. - 로그 모니터링 : tail -f, journalctl -f, kubectl logs -f, CI 로그, 서비스 재시작. - "Vibe debugging": 에이전트가 코드를 읽는 동안 REPL/debugger를 열고 아이디어 (python, ipython, pdb)를 트리거합니다.

개요(AI 번역)

PiloTY (AI Copilot에 대한 PTY)는 지속적이고 상호 작용하는 맨끝을 제공하는 MCP 서버입니다.

쉘 명령을 실행하기 위해 Claude Code / Codex를 사용하셨다면, 동일한 벽에 충돌해야 합니다. 도구 호출은 무해합니다. 각 통화는 "fresh"이므로 환경 변수가 사라지므로 대화 형 프로그램은 안정적으로 구동 될 수 없으며 긴 실행 프로세스는 에이전트가 생각하고있는 동안 잘라 내거나 나올 수 있습니다.

PiloTY는 대리인의 맨끝을 더 인간 같이 행동하기 위하여 존재합니다: 진짜 맨끝에서 무언가를 시작하십시오, 나중에 오고, 계속하십시오.

경고: PiloTY는 무제한 맨끝 접근을 노출합니다. 당신의 키보드를주는 것을 좋아합니다.

그것이 가능하게 하는 것

  • 긴 실행 명령: 빌드, 설치, 마이그레이션, 테스트 스위트. 한 번 시작, 나중에 출력 확인.
  • 로그 모니터링: tail -f, journalctl -f, kubectl logs -f], CI 로그, 서비스 재시작.
  • “Vibe debugging”: 에이전트가 코드와 트리스 아이디어를 읽는 동안 REPL/debugger를 열고 ipython, pdb]]).
  • Privileged 작업 : 대화 형 암호 프롬프트 처리 (sudo], SSH 암호, 키 패스프라스).

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요.

README

원문 README의 일부입니다. 원문 보기.

PiloTY

PiloTY (PTY for your AI Copilot) is an MCP server that gives an agent a persistent, interactive terminal.

If you have used Claude Code / Codex to run shell commands, you have probably hit the same wall: tool calls tend to be stateless. Each call starts “fresh”, so environment variables disappear, interactive programs cannot be driven reliably, and long-running processes get cut off or orphaned while the agent is thinking.

PiloTY exists to make the agent’s terminal behave more like a human’s: start something in a real terminal, come back later, and keep going.

Warning: PiloTY exposes unrestricted terminal access. Treat it like giving the agent your keyboard.

What it enables

  • Long-running commands: builds, installs, migrations, test suites. Start once, check output later.
  • Log monitoring: tail -f, journalctl -f, kubectl logs -f, CI logs, service restarts.
  • “Vibe debugging”: keep a REPL/debugger open while the agent reads code and tries ideas (python, ipython, pdb).
  • Privileged operations: handle interactive password prompts (sudo, SSH passwords, key passphrases).
  • SSH-based devops: keep a remote login session alive across tool calls; run remote commands in the same shell.
  • Terminal UIs: less, man, top, vim can work, but cursor-heavy programs often require screen snapshots instead of plain text output.

Quickstart

PiloTY is meant to be launched by an MCP client over stdio.

Add it to Codex CLI as an MCP server:

codex mcp add piloty -- uvx --from git+https://github.com/yiwenlu66/PiloTY.git piloty

If you prefer SSH-based Git fetch:

codex mcp add piloty -- uvx --from git+ssh://[email protected]/yiwenlu66/PiloTY.git piloty

If you already have a local clone:

codex mcp add piloty -- uv --directory /path/to/PiloTY run piloty

Run the server command directly (without adding it to an MCP client):

uvx --from git+https://github.com/yiwenlu66/PiloTY.git piloty

Mental model

One session is one real interactive terminal that stays alive across tool calls.

  • State persists: cwd, environment variables, foreground process, remote SSH connection, REPL/debugger state.
  • PiloTY tracks both the raw output stream and a rendered screen/scrollback view.

PiloTY keeps two representations:

  • output: incremental text stream (optionally ANSI-stripped)
  • Rendered screen/scrollback: what a human would see in a terminal

Public MCP results separate call outcome from terminal interpretation:

  • outcome: success, deadline_exceeded, eof, error, invalid_session, or terminated
  • terminal_state: best-effort rendered-state classification after the call (running, ready, password, confirm, repl, editor, pager, unknown)

Sessions are addressed by a session_id string. Reusing the same id is what keeps state.

Integration notes (for MCP integrators)

GitHub에서 전체 README 보기

설치

uvx --from git+https://github.com/yiwenlu66/PiloTY.git piloty
MCP 초보자라면? mcpskill.org 가이드부터 시작하세요 →