UNPKG

@iosifnicolae22/remote-shell

Version:

Run any terminal application and control it remotely from your mobile device. Perfect for maxing out vibe coding sessions with Claude Code on the go!

4 lines (3 loc) 1.91 kB
#!/usr/bin/env node #!/usr/bin/env node "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,s){void 0===s&&(s=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,s,o)}:function(e,t,r,s){void 0===s&&(s=r),e[s]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(null!=t)for(var s=e(t),o=0;o<s.length;o++)"default"!==s[o]&&__createBinding(r,t,s[o]);return __setModuleDefault(r,t),r}}();Object.defineProperty(exports,"__esModule",{value:!0});const pty=__importStar(require("node-pty"));class SimpleClaude{claudePty;async start(){try{const e="/Users/iosif/.claude/local/claude";this.claudePty=pty.spawn(e,[],{name:"xterm-color",cols:process.stdout.columns||80,rows:process.stdout.rows||24,cwd:process.cwd(),env:{...process.env,FORCE_COLOR:"1",TERM:"xterm-256color"}}),this.claudePty.onData(e=>{process.stdout.write(e)}),process.stdin.setRawMode(!0),process.stdin.setEncoding("utf8"),process.stdin.on("data",e=>{this.claudePty.write(e)}),process.stdout.on("resize",()=>{this.claudePty.resize(process.stdout.columns,process.stdout.rows)}),this.claudePty.onExit(e=>{process.stdin.setRawMode(!1),process.exit(e.exitCode||0)}),this.claudePty.on("error",()=>{process.exit(1)})}catch(e){process.exit(1)}}}process.on("SIGINT",()=>{process.exit(0)}),process.on("SIGTERM",()=>{process.exit(0)});const launcher=new SimpleClaude;launcher.start().catch(console.error);