login with fish

This commit is contained in:
Chris Wanstrath 2026-02-17 18:28:14 -08:00
parent e6aa31f769
commit f27eccf5b0
2 changed files with 23 additions and 2 deletions

View File

@ -139,6 +139,14 @@ vmCmd
console.log(s)
})
vmCmd
.command("info")
.description("Show VM system info (via neofetch)")
.action(async () => {
await vm.ensure()
await vm.info()
})
vmCmd
.command("stop")
.description("Stop the VM")

View File

@ -21,6 +21,10 @@ export async function ensure(): Promise<void> {
// Provision
await $`limactl shell ${VM_NAME} -- bash -c "curl -fsSL https://claude.ai/install.sh | bash"`.quiet()
await $`limactl shell ${VM_NAME} -- sudo apt install -y neofetch fish`.quiet()
await $`limactl shell ${VM_NAME} -- sudo apt install -y fish"`.quiet()
// Replace ~/.claude and ~/.claude.json with symlinks to host credentials
await $`limactl shell ${VM_NAME} -- bash -c "rm -rf ~/.claude ~/.claude.json && ln -sf ${home}/.claude ~/.claude && ln -sf ${home}/.claude.json ~/.claude.json"`.quiet()
}
@ -67,10 +71,19 @@ export async function claude(workdir: string): Promise<void> {
await proc.exited
}
/** Open an interactive shell in the VM. */
/** Open an interactive fish shell in the VM. */
export async function shell(): Promise<void> {
const proc = Bun.spawn(
["limactl", "shell", VM_NAME],
["limactl", "shell", VM_NAME, "--", "env", "TERM=xterm-256color", "fish", "--login"],
{ stdin: "inherit", stdout: "inherit", stderr: "inherit" },
)
await proc.exited
}
/** Run neofetch in the VM. */
export async function info(): Promise<void> {
const proc = Bun.spawn(
["limactl", "shell", VM_NAME, "--", "neofetch"],
{ stdin: "inherit", stdout: "inherit", stderr: "inherit" },
)
await proc.exited