.-"""-.
     /        \                       "talk to me. i'm listening."
    |   O  O   |
    |     __   |                      atlas ยท rubber-duck-cli
     \  `----' /
      `------'
     //      \\
    //________\\
๐Ÿฆ† open source ยท BYOK ยท v1.0.28

The rubber duck that
actually talks back.

Every developer has a rubber duck on their desk. Yours is named Atlas. Unlike other rubber ducks, Atlas doesn't just sit there โ€” he answers your questions, reads your code, searches the web, writes files, understands your git history, and runs terminal commands for you. Powered by AI, living in your terminal.

npm install -g rubber-duck-cli View on GitHub โ†’
70B LLaMA model
8 power flags
100% client-side
0 subscriptions

SEE IT IN ACTION

Go ahead. Talk to the duck.

chris@cachyos ~ rubber-duck-cli
โฏ cat error.log | atlas ask "what is wrong here?" ๐Ÿฆ† Atlas ยท llama-3.3-70b-versatile ยท 1.6s You've got an ECONNREFUSED on port 5432 โ€” Postgres isn't running. Try: sudo systemctl start postgresql If it fails, check journalctl -xe for the real startup error. โฏ atlas ask "fix the bug" --file index.js --write index.js โœ“ wrote fixed version โ†’ index.js โฏ
โฏ atlas chat --project . ๐Ÿฆ† Atlas loaded 14 files ยท ready to chat You: what does this project do? Atlas: It's a REST API โ€” Express, Postgres, JWT auth. routes/tasks.js is doing most of the heavy lifting. You: how can I improve the architecture? Atlas: Your controllers and DB logic are mixed together. A service layer would fix that. Want me to refactor? You: yes --write routes/tasks.js โœ“ wrote refactored file โ†’ routes/tasks.js โฏ
โฏ git add . โฏ atlas ask "write a commit message for my staged changes" --git Git context loaded. ๐Ÿฆ† Atlas: feat: add --run flag with safety checks and command execution โฏ atlas chat --git Git context loaded. You: what changed in the last 10 commits? Atlas: You've added git integration, web search, file writing, and terminal command execution over the last 10 commits. โฏ
โฏ atlas ask "list all running node processes" --run ๐Ÿฆ† Atlas generating command... I want to run: ps aux | grep node Confirm? (y/n): y --- output --- chris 4821 0.4 1.2 node server.js chris 5103 0.1 0.8 node cli/index.js --- exit code 0 --- Atlas: You have two Node.js processes running โ€” your server on PID 4821 and Atlas itself on PID 5103. โฏ
โฏ atlas help --file, -f Attach a file to your question --project, -p Load an entire directory into context --search, -s Search the web via Tavily --write, -w Write Atlas's response to a file --git, -g Include git context (diffs, commits, history) --run, -r Generate and execute a terminal command # Works mid-conversation too: You: explain this --file server.js You: write a commit message --git You: latest Node.js release? --search You: show running processes RUN โฏ

WHY ATLAS

A rubber duck with superpowers.

๐Ÿ’ฌ
Chat & ask modes

Go back and forth with memory in atlas chat, or fire off a single question with atlas ask. Atlas remembers the whole session.

๐Ÿ“
File & project context

Attach a file with --file or load your entire codebase with --project. Atlas reads what you're actually working on.

๐ŸŒ
Web search

Add --search to any question and Atlas searches the web via Tavily. Ask about the latest framework release โ€” he'll find out.

โœ๏ธ
Writes files for you

Use --write path/to/file and Atlas generates and saves code directly. Fix a bug, scaffold a server, create a README โ€” done.

๐Ÿ”€
Git integration

Add --git and Atlas understands your repo โ€” staged changes, diffs, recent commits. He'll even write your commit messages.

โšก
Run terminal commands

Say what you want in plain English with --run or RUN in chat. Atlas generates the command, shows it to you, asks for confirmation, runs it, and explains the output.

๐Ÿ”‘
Fully BYOK & open source

Your keys never leave your machine. No backend, no account, no usage limits beyond your own API keys. Fully open on GitHub โ€” go audit it.

๐Ÿ”„
Streaming responses

Responses print token by token as they arrive โ€” no waiting for the full answer. Feels fast, feels alive. Just like talking to a real duck.


REFERENCE

Every flag, explained.

Flag Description
--file-f
Attach a file to your question. Atlas reads the full contents and uses it as context.
atlas ask "explain this" --file index.js
--project-p
Load an entire directory into context. Atlas reads all code files and understands your whole codebase.
atlas chat --project .
--search-s
Search the web via Tavily before answering. Gets you current information beyond the model's training data.
atlas ask "latest Node.js LTS version" --search
--write-w
Write Atlas's response directly to a file. Extracts code blocks intelligently โ€” no copy-pasting needed.
atlas ask "create an express server" --write server.js
--git-g
Include git context โ€” current branch, staged changes, diffs, and recent commit history. Perfect for commit message generation.
atlas ask "write a commit message" --git
--run-r
Describe what you want in plain English. Atlas generates the terminal command, shows it to you, asks for confirmation, executes it, and explains the output. Use RUN mid-conversation in chat mode.
atlas ask "show processes using most memory" --run
โ—† SAFETY โ€” --run IS PROTECTED

Dangerous commands are blocked automatically. Atlas always shows you the command before running it and requires explicit y confirmation. You are always in control.


GETTING STARTED

Meet Atlas in about 60 seconds.

01
INSTALL GLOBALLY VIA NPM
npm install -g rubber-duck-cli

Requires Node.js 18+

02
GET YOUR FREE GROQ API KEY
https://console.groq.com/keys

Free tier, no credit card. Optionally grab a Tavily key at app.tavily.com for web search.

03
CONFIGURE ATLAS
atlas config

Interactive setup โ€” enter your Groq API key and optionally your Tavily key for web search.

04
START TALKING
atlas chat
โ—† 100% CLIENT-SIDE โ€” YOUR KEYS STAY WITH YOU

Atlas has no backend. Keys are stored locally at ~/.config/rubber-duck-cli/config.json and sent directly to Groq and Tavily โ€” never through any middleman. The code is fully open; go check it yourself.