Skip to main content

repl-interaction

Patterns for controlling REPL sessions (Python, IPython, Node.js, Ruby, etc.) via terminalcp

ソース情報

リポジトリ
code-yeongyu/sisyphus-private
ソースの最終更新活動
2025年11月2日 08:33
検出された SKILL.md の言語
英語
スター
17
フォーク
2

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
repl-interaction
description
Patterns for controlling REPL sessions (Python, IPython, Node.js, Ruby, etc.) via terminalcp
# REPL Interaction with terminalcp This skill provides comprehensive patterns for managing and automating REPL (Read-Eval-Print Loop) sessions using terminalcp MCP. It enables AI agents to execute code interactively, explore APIs, and prototype solutions in real-time. ## Overview terminalcp enables: - Interactive code execution in multiple languages - Real-time output capture and parsing - Persistent REPL sessions for stateful exploration - Parallel REPL management for multi-language projects - History and context preservation The MCP server runs via `npx @mariozechner/terminalcp@latest --mcp` and provides full terminal emulation for REPL interaction. ## Python REPL ### Starting Python REPL ```json { "action": "start", "command": "python3 -i", "name": "python-repl" } ``` ### Starting IPython (Enhanced REPL) ```json { "action": "start", "command": "ipython", "name": "ipython-repl" } ``` ### Basic Code Execution ```json // Simple expression { "action": "stdin", "id": "python-repl", "data": "2 + 2\r" } // Variable assignment { "action": "stdin", "id": "python-repl", "data": "x = 42\r" } // Import module { "action": "stdin", "id": "python-repl", "data": "import math\r" } // Use imported module { "action": "stdin", "id": "python-repl", "data": "math.sqrt(16)\r" } ``` ### Multi-Line Code Execution ```json // Start multi-line code { "action": "stdin", "id": "python-repl", "data": "def greet(name):\r" } { "action": "stdin", "id": "python-repl", "data": " return f'Hello, {name}!'\r" } // Empty line to finish { "action": "stdin", "id": "python-repl", "data": "\r" } // Call the function { "action": "stdin", "id": "python-repl", "data": "greet('Alice')\r" } ``` ### Capturing REPL Output ```json { "action": "stdout", "id": "python-repl" } ``` Returns the current terminal state including all executed code and output. ### Stream Mode for Real-Time Monitoring ```json { "action": "stream", "id": "python-repl", "since_last": true } ``` Returns only new output since last check, useful for monitoring long-running computations. ## IPython Advanced Features ### Magic Commands ```json // Time execution { "action": "stdin", "id": "ipython-repl", "data": "%timeit sum(range(1000))\r" } // Run external script { "action": "stdin", "id": "ipython-repl", "data": "%run script.py\r" } // Show history { "action": "stdin", "id": "ipython-repl", "data": "%history\r" } // List variables { "action": "stdin", "id": "ipython-repl", "data": "%whos\r" } // Edit code in external editor { "action": "stdin", "id": "ipython-repl", "data": "%edit myfunction\r" } ``` ### Object Introspection ```json // Get help { "action": "stdin", "id": "ipython-repl", "data": "str.split?\r" } // Detailed help { "action": "stdin", "id": "ipython-repl", "data": "str.split??\r" } // List methods { "action": "stdin", "id": "ipython-repl", "data": "dir(str)\r" } // Type inspection { "action": "stdin", "id": "ipython-repl", "data": "type(my_variable)\r" } ``` ### Shell Commands in IPython ```json // Run shell command { "action": "stdin", "id": "ipython-repl", "data": "!ls -la\r" } // Capture shell output { "action": "stdin", "id": "ipython-repl", "data": "files = !ls *.py\r" } // Use Python variables in shell { "action": "stdin", "id": "ipython-repl", "data": "!echo {my_var}\r" } ``` ## Node.js REPL ### Starting Node REPL ```json { "action": "start", "command": "node", "name": "node-repl" } ``` ### Basic JavaScript Execution ```json // Simple expression { "action": "stdin", "id": "node-repl", "data": "2 + 2\r" } // Variable declaration { "action": "stdin", "id": "node-repl", "data": "const x = 42\r" } // Array methods { "action": "stdin", "id": "node-repl", "data": "[1, 2, 3].map(n => n * 2)\r" } // Require module { "action": "stdin", "id": "node-repl", "data": "const fs = require('fs')\r" } ``` ### Multi-Line Code ```json // Start function definition { "action": "stdin", "id": "node-repl", "data": "function greet(name) {\r" } { "action": "stdin", "id": "node-repl", "data": " return `Hello, ${name}!`\r" } { "action": "stdin", "id": "node-repl", "data": "}\r" } // Call function { "action": "stdin", "id": "node-repl", "data": "greet('Bob')\r" } ``` ### Async/Await in REPL ```json // Define async function { "action": "stdin", "id": "node-repl", "data": "async function fetchData() { return 'data' }\r" } // Call with await (Node 16+) { "action": "stdin", "id": "node-repl", "data": "await fetchData()\r" } ``` ### Node REPL Commands ```json // Show help { "action": "stdin", "id": "node-repl", "data": ".help\r" } // Load file { "action": "stdin", "id": "node-repl", "data": ".load script.js\r" } // Save session to file { "action": "stdin", "id": "node-repl", "data": ".save session.js\r" } // Exit REPL { "action": "stdin", "id": "node-repl", "data": ".exit\r" } ``` ## Ruby REPL (irb) ### Starting Ruby REPL ```json { "action": "start", "command": "irb", "name": "ruby-repl" } ``` ### Ruby Code Execution ```json // Simple expression { "action": "stdin", "id": "ruby-repl", "data": "2 + 2\r" } // String manipulation { "action": "stdin", "id": "ruby-repl", "data": "'hello'.upcase\r" } // Array operations { "action": "stdin", "id": "ruby-repl", "data": "[1, 2, 3].map { |n| n * 2 }\r" } // Define method { "action": "stdin", "id": "ruby-repl", "data": "def greet(name); \"Hello, #{name}!\"; end\r" } // Call method { "action": "stdin", "id": "ruby-repl", "data": "greet('Charlie')\r" } ``` ## Lua REPL ### Starting Lua REPL ```json { "action": "start", "command": "lua", "name": "lua-repl" } ``` ### Lua Code Execution ```json // Simple expression { "action": "stdin", "id": "lua-repl", "data": "print(2 + 2)\r" } // Table manipulation { "action": "stdin", "id": "lua-repl", "data": "t = {1, 2, 3}\r" } { "action": "stdin", "id": "lua-repl", "data": "print(t[1])\r" } ``` ## Advanced Patterns ### API Exploration Workflow ```json // 1. Start IPython session { "action": "start", "command": "ipython", "name": "api-explore" } // 2. Import library { "action": "stdin", "id": "api-explore", "data": "import requests\r" } // 3. Inspect module { "action": "stdin", "id": "api-explore", "data": "dir(requests)\r" } // 4. Get help on specific function { "action": "stdin",
GitHubで見る
この SKILL.md は非常に大きいため、SkillsMP では最初のセクションだけを表示しています。 GitHubで見る