
Research
/Security News
Mini Shai-Hulud Campaign Hits Red Hat Cloud Services npm Packages
A mini Shai-Hulud campaign compromised Red Hat Cloud Services npm packages to steal developer and CI/CD secrets during installation.
@freestyle-sh/with-pty
Advanced tools
Generic PTY helper for Freestyle VMs, backed by tmux.
By default, PTY helpers also add /root/.tmux.conf with:
set -g mouse on
set -g status off
Set applyDefaultTmuxConfig: false to opt out.
pnpm add @freestyle-sh/with-pty freestyle
import { freestyle, VmSpec } from "freestyle";
import { VmPty } from "@freestyle-sh/with-pty";
const { vm } = await freestyle.vms.create({
snapshot: new VmSpec({
with: {
pty: new VmPty(),
},
}),
});
const ptyHandle = await vm.pty.createPtySession({
id: "dev",
command: "npm run dev",
cwd: "/root/repo",
ptySize: { cols: 120, rows: 30 },
reset: true,
});
await ptyHandle.sendInput("echo hello from pty\n");
await ptyHandle.resize({ cols: 160, rows: 40 });
const sessions = await vm.pty.listPtySessions();
console.log(sessions.map((s) => s.id));
const output = await ptyHandle.read({
lines: 80,
});
console.log(output);
const result = await ptyHandle.wait({ timeoutMs: 5_000 });
console.log(result.exitCode);
createPtySession({ id, command, cwd, envs, ptySize, reset })connectPtySession(sessionId)listPtySessions()getPtySessionInfo(sessionId)resizePtySession(sessionId, ptySize)killPtySession(sessionId)attachCommand({ sessionId, readOnly })PtyHandle):
sendInput(data)read({ lines, includeEscape })resize(ptySize)wait({ timeoutMs, pollIntervalMs, lines, onData })waitForConnection(timeoutMs)isConnected()disconnect()kill()Note: This implementation uses tmux under the hood. It mirrors Daytona-style semantics where practical, but does not expose a websocket stream; wait/read use polling via tmux capture.
FAQs
Generic PTY helper for Freestyle VMs, backed by tmux.
We found that @freestyle-sh/with-pty demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
A mini Shai-Hulud campaign compromised Red Hat Cloud Services npm packages to steal developer and CI/CD secrets during installation.

Research
/Security News
The North Korean malware loader hides in a Packagist-listed package and its GitHub branch to fetch and execute remote code in a likely Contagious Interview-style lure.

Security News
The Rust project is moving toward formal rules on LLM use in contributions after months of internal debate over maintainer burden, code quality, and contributor experience.