TamimDostyar/buddy

System that lets AI do the task!

3

stars

76

commits

TypeScript

primary language

Jun 2, 2026

updated

README

Buddy

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.

Why TypeScript?

TypeScript Icon:

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.

Run (placeholder)

  • pnpm start — launches the Ink terminal UI at ui/terminal/index.tsx.
  • pnpm dev — same, with file-watch reload.

Repo layout (high level)

  • 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.

Example

This screenshot shows Buddy running in the terminal:

Buddy terminal example

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

I am currently building an OS that I eventually plan to connect with this software. Check out my OS repository here.

Goals

  • Replace Ollama with buddyGPT as the AI backend — no external runtime, no cloud dependency, no model that someone else owns
  • Migrate from a TypeScript/Node.js CLI running on macOS to a native process running inside buddyOS
  • Evolve into BuddyShell — the AI-native shell where typing a command and talking to the AI are the same action
  • Use the .memoryChatSession/ history as training data so the model learns each user's habits over time
  • Eventually have no separation between "terminal" and "AI assistant" — one prompt, one interface, one language

Architecture

How 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

REPOSITORIES:

Contributors

TamimDostyar

76 commits

TamimDostyar/buddy

System that lets AI do the task!

3

stars

76

commits

TypeScript

primary language

Jun 2, 2026

updated

README

Buddy

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.

Why TypeScript?

TypeScript Icon:

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.

Run (placeholder)

  • pnpm start — launches the Ink terminal UI at ui/terminal/index.tsx.
  • pnpm dev — same, with file-watch reload.

Repo layout (high level)

  • 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.

Example

This screenshot shows Buddy running in the terminal:

Buddy terminal example

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

I am currently building an OS that I eventually plan to connect with this software. Check out my OS repository here.

Goals

  • Replace Ollama with buddyGPT as the AI backend — no external runtime, no cloud dependency, no model that someone else owns
  • Migrate from a TypeScript/Node.js CLI running on macOS to a native process running inside buddyOS
  • Evolve into BuddyShell — the AI-native shell where typing a command and talking to the AI are the same action
  • Use the .memoryChatSession/ history as training data so the model learns each user's habits over time
  • Eventually have no separation between "terminal" and "AI assistant" — one prompt, one interface, one language

Architecture

How 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

REPOSITORIES:

Contributors

TamimDostyar

76 commits

Languages

TypeScript

71.6%

Shell

11.5%

PowerShell

11.5%

Python

2.7%

Dockerfile

2.7%