Small CLI-oriented helper for everyday tasks. Keep it simple: you talk to Buddy from the terminal; skills handle focused jobs like time and notes.

Buddy is written in TypeScript because it gives static types and fast editor feedback across a growing CLI, config, and service surface, which catches integration mistakes early and makes refactors safer. The same language and tooling cover scripts and Node-style async I/O, so HTTP, subprocesses, and file work stay straightforward, and npm’s ecosystem stays available for whatever Buddy needs to talk to. It is not the tool for kernel-level or hard real-time work, but for a terminal-first helper that orchestrates everyday tasks, TypeScript is a practical balance of safety, speed of change, and library support.
pnpm start — launches the Ink terminal UI at ui/terminal/index.tsx.pnpm dev — same, with file-watch reload.src/ — backend/infrastructure only: config, memory, system service, profile schema, infra adapters. No UI code.skills/ — one folder per skill; each skill has a short .md describing what it will do.ui/ — all user-facing code: Ink/React terminal UI and the hooks that adapt src/ logic for it. Any future interface (web, GUI) goes here too.security/ — notes on system security and threading/concurrency expectations.This screenshot shows Buddy running in the terminal:

Here is how you can get all the command lines with /.

I am currently building an OS that I eventually plan to connect with this software. Check out my OS repository here.
.memoryChatSession/ history as training data so the model learns each user's habits over timeHow input travels through buddyCLI today, and how it will travel through BuddyShell.
TODAY FUTURE (BuddyShell inside buddyOS)
───────────────────────────────── ────────────────────────────────────────
$ pnpm start buddy> _
buddy> what time is it buddy> open the file I was editing
about the networking bug
│ │
▼ │ sys_ask() (natural-language syscall)
ui/terminal (Ink) ▼
│ buddyGPT (kai/ kernel subsystem)
│ │
▼ │ reads live kernel state:
systemService │ · semantic FS index
.ollamaIntelligence() │ · process table
│ │ · recent file access log
│ HTTP → Ollama │
▼ ▼ decides:
downloaded model ┌───────────────────────┐
responds │ command? │──► exec syscall
│ natural language? │──► text answer at buddy>
│ │ need the internet? │──► fetch online, run it
▼ └───────────────────────┘
console.log(chat)
shown in terminal shown at buddy> with full kernel context
Session saved to: .memoryChatSession/ ←── becomes training data for buddyGPT
76 commits
TypeScript
71.6%
Shell
11.5%
PowerShell
11.5%
Python
2.7%
Dockerfile
2.7%
Small CLI-oriented helper for everyday tasks. Keep it simple: you talk to Buddy from the terminal; skills handle focused jobs like time and notes.

Buddy is written in TypeScript because it gives static types and fast editor feedback across a growing CLI, config, and service surface, which catches integration mistakes early and makes refactors safer. The same language and tooling cover scripts and Node-style async I/O, so HTTP, subprocesses, and file work stay straightforward, and npm’s ecosystem stays available for whatever Buddy needs to talk to. It is not the tool for kernel-level or hard real-time work, but for a terminal-first helper that orchestrates everyday tasks, TypeScript is a practical balance of safety, speed of change, and library support.
pnpm start — launches the Ink terminal UI at ui/terminal/index.tsx.pnpm dev — same, with file-watch reload.src/ — backend/infrastructure only: config, memory, system service, profile schema, infra adapters. No UI code.skills/ — one folder per skill; each skill has a short .md describing what it will do.ui/ — all user-facing code: Ink/React terminal UI and the hooks that adapt src/ logic for it. Any future interface (web, GUI) goes here too.security/ — notes on system security and threading/concurrency expectations.This screenshot shows Buddy running in the terminal:

Here is how you can get all the command lines with /.

I am currently building an OS that I eventually plan to connect with this software. Check out my OS repository here.
.memoryChatSession/ history as training data so the model learns each user's habits over timeHow input travels through buddyCLI today, and how it will travel through BuddyShell.
TODAY FUTURE (BuddyShell inside buddyOS)
───────────────────────────────── ────────────────────────────────────────
$ pnpm start buddy> _
buddy> what time is it buddy> open the file I was editing
about the networking bug
│ │
▼ │ sys_ask() (natural-language syscall)
ui/terminal (Ink) ▼
│ buddyGPT (kai/ kernel subsystem)
│ │
▼ │ reads live kernel state:
systemService │ · semantic FS index
.ollamaIntelligence() │ · process table
│ │ · recent file access log
│ HTTP → Ollama │
▼ ▼ decides:
downloaded model ┌───────────────────────┐
responds │ command? │──► exec syscall
│ natural language? │──► text answer at buddy>
│ │ need the internet? │──► fetch online, run it
▼ └───────────────────────┘
console.log(chat)
shown in terminal shown at buddy> with full kernel context
Session saved to: .memoryChatSession/ ←── becomes training data for buddyGPT
76 commits
TypeScript
71.6%
Shell
11.5%
PowerShell
11.5%
Python
2.7%
Dockerfile
2.7%