AI 터미널은 사용자가 이 PC에 설치하고 본인의 구독으로 로그인한 AI CLI(Claude Code, Codex, Gemini CLI, OpenCode, GitHub Copilot 등)가 Ploto에서 열려 있는 프로젝트를 읽고 편집할 수 있게 하는 기능입니다. 본 앱은 AI CLI를 동봉하거나 자동 설치하지 않으며, AI 서비스의 계정이나 API 키도 다루지 않습니다.
연결 방식: AI는 다음 중 한 경로를 통해서만 Ploto를 조작합니다. 두 경로 모두 같은 PC 안의 연결로 한정되며, 네트워크상의 다른 단말에서는 접속할 수 없습니다. AI가 Ploto의 프로젝트 파일이나 데이터베이스에 직접 접근하는 API는 제공하지 않습니다.
- MCP(주 경로): AI 클라이언트가 MCP 서버로
ploto-mcp.exe --mcp-stdio(MSIX 앱 실행 별칭)를 실행하고 표준 입출력으로 통신합니다. 이 프로세스는 화면이 없는 중계 전용으로, 받은 요청을 Windows 명명된 파이프 \\.\pipe\LOCAL\ploto-mcp-<64자리 식별값>을 통해 실행 중인 Ploto 본체로 전달합니다. 식별값은 사용자 프로필 경로와 앱 식별자에서 도출한 고정값입니다. 파이프는 접근 권한을 생성자(같은 Windows 사용자)로 한정하고, 원격 연결을 거부하며, 같은 이름의 파이프를 먼저 점유하지 못하도록 배타적으로 생성합니다. 토큰은 사용하지 않습니다. 동시 연결은 최대 16개, 요청 1건은 64KiB까지입니다.
- 터미널 API(예비 경로): MCP 설정을 읽지 않는 AI 클라이언트를 위해 내장 터미널에서
ploto.ps1, ploto.cmd, ploto.sh가 HTTP로 요청을 보냅니다. 대기는 127.0.0.1의 동적 포트에서만 하며 외부 인터페이스에는 공개하지 않습니다. 각 요청에는 무작위 256비트 Bearer 토큰이 필요하며, 토큰은 메모리에만 보관하고 내장 터미널의 환경 변수로만 전달합니다(파일에는 저장하지 않습니다). Host 헤더를 대조하고, 브라우저로부터의 요청(Origin 포함·크로스 사이트)은 거부합니다. 요청 본문은 64KiB까지입니다. 프로젝트 전환·닫기·앱 종료 시 토큰은 무효화됩니다.
- 공통 제어: 두 경로 모두 Ploto 내부의 동일한 처리를 거치므로 동의 확인, 읽기 전용 시작, 편집 허용, 저장 불가, 체험판 횟수 관리가 똑같이 적용됩니다. 조작은 한 번에 1건씩 처리하며 응답 대기는 30초까지입니다. 임의의 SQL, 파일 조작, 셸 명령을 실행하는 API는 없습니다.
- 대기 시점: Ploto 화면을 시작하면 두 경로 모두 대기를 시작하지만, 사용자가 동의하기 전까지 프로젝트 조작은 거부합니다. Ploto가 종료되어 있는 동안에도 AI 클라이언트가 실행한 MCP 중계 프로세스는 종료되지 않으며, 요청에는 'Ploto가 실행 중이 아님'을 반환하고 Ploto가 다시 시작되면 재연결합니다. MCP로 Ploto를 실행하거나, 파일을 열거나, 허용 설정을 변경할 수는 없습니다.
- Windows 방화벽: 수신은 루프백과 명명된 파이프로 한정되므로 인바운드 허용 규칙은 필요하지 않습니다. AI CLI에서 AI 서비스로의 아웃바운드 통신은 AI CLI 측 사양에 따릅니다.
데이터 흐름: AI가 읽은 프로젝트 내용(작업명, 담당자명, 일정, 노트, ToDo, 태그 등)은 AI CLI를 통해 사용자가 선택한 AI 서비스 제공자에게 전송됩니다. 이 전송은 Ploto 제공자의 서버를 거치지 않습니다. 학습 이용, 보존 기간, 처리 지역 등의 처리는 사용자와 AI 서비스 제공자 간의 계약에 따릅니다. 업무 데이터를 다루는 경우에는 조직이 승인한 AI 서비스와 요금제를 사용하도록 사용자에게 안내해 주십시오.
허용과 조작 범위:
- 처음 터미널을 표시할 때 동의를 요청하며, 허용하기 전까지 프로젝트 조작을 거부합니다. 동의는 단말에 저장되며 이후에는 다시 표시하지 않습니다.
- AI의 조작은 매번 읽기 전용으로 시작됩니다. 편집은 사용자가 스위치를 켜거나 AI의 편집 허용 요청을 사용자가 승인한 경우에만 가능합니다. 허용은 파일 전환·종료 시 무효화됩니다.
- AI의 편집은 화면상의 작업 데이터에만 반영되며, AI가
.ploto 파일을 저장할 수는 없습니다. 저장은 사용자가 화면에서 합니다. 편집은 Ploto의 일반적인 실행 취소(Undo)로 되돌릴 수 있습니다.
- Ploto의 API는 임의의 SQL이나 셸 실행을 받아들이지 않습니다. 다만 내장 터미널은 사용자 권한의 셸이며, 위의 허용은 셸 안에서 AI CLI가 수행하는 파일 조작이나 명령 실행을 제한하지 않습니다. 이러한 조작은 AI CLI의 권한 설정과 사용자의 승인에 따릅니다.
- 조작 이력은 메서드명과 성공 여부만 화면에 최대 30건 표시하며 파일에는 저장하지 않습니다. 대화 내용, 터미널 출력 및 조작 내용을 Ploto가 저장하거나 전송하지 않습니다.
AI 클라이언트 설정에 대한 기록: 작업 폴더(제5항) 외에, 다음 경우에만 각 AI 클라이언트의 사용자 설정에 Ploto의 MCP 연결 설정과 연결을 안내하는 짧은 설명서(Skill)를 기록합니다. 기록하는 것은 Ploto 항목뿐이며 다른 설정은 변경하지 않습니다.
- Codex: Codex는 프로젝트 단위 설정을 읽지 않으므로, AI 연동을 활성화할 때마다
%USERPROFILE%\.codex\config.toml(CODEX_HOME 지정 시 그 아래)과 %USERPROFILE%\.agents\skills에 자동 등록합니다.
- 그 밖의 클라이언트(Claude Code, Cursor, Gemini CLI, Antigravity, OpenCode, VS Code / Copilot): 사용자가 연결 설정 화면에서 등록 버튼을 누른 경우에만 기록합니다. 설정 폴더가 없는 클라이언트에는 기록하지 않으며, Claude Code의
~/.claude.json은 이미 있는 경우에만 갱신합니다.
- 기록 대상 경로는 화면에 표시되며, 같은 화면에서 해제할 수 있습니다.
AI에 전달하는 설명서: Ploto는 AI가 본 앱을 올바르게 조작하기 위한 설명서(조작 절차, API 사양, 쓰기 전 확인, 추측으로 편집하지 않을 것, 인증 정보나 DB를 탐색하지 않을 것 등)를 MCP 초기화 응답 및 작업 폴더의 텍스트 파일로 AI에 전달합니다. 설명서는 AI의 동작을 안내하는 것이며, 보안상의 경계는 위의 허용·읽기 전용·저장 불가 구조로 보장합니다. 전문은 별도 페이지 'Ploto가 AI에 전달하는 설명서'에서 확인하고 복사할 수 있습니다.
체험판과 라이선스: 체험판에서는 API/MCP 조작을 합계 60회까지 받아들입니다. 횟수와 라이선스는 단말에서 관리하며, 사용 현황을 Ploto 제공자에게 전송하지 않습니다. Store 버전의 구매 확인은 Microsoft Store의 방식으로 이루어집니다.
조직에서의 비활성화: 시스템 또는 사용자 환경 변수에 PLOTO_DISABLE_AUTOMATION=1을 설정하면 AI 연동 활성화를 거부합니다. 이는 본 앱 내부의 설정이며, 애플리케이션 제어나 조직의 AI 이용 기준을 대신하지 않습니다. AI CLI 자체의 사용 가능 여부는 조직의 단말 관리와 네트워크 제어로 관리해 주십시오.