Sashell

SaShell MK 3.0.0!!!

Real Linux shell with Sarvam AI as your safety net. Type real commands — AI only steps in when something looks dangerous, broken, or funny.
Clone the repository and run the .exe file from the dist folder… or use the python script and run it manually —

Change log :
- Added a new plugin system. This allows the user to enable specific plugins to unlock more functionality from their shell.
- Fixed the TTS timeout error.


Tech Stack

Component Details
Language Python 3 — stdlib only for core
AI Model sarvam-m via Sarvam API
TTS Sarvam Bulbul v3 → pyttsx3 fallback
Shell executor subprocess.run(shell=True)
History readline — saved to ~/.pyshell_history
API key Hardcoded or env var SARVAM_API_KEY

Installation

# Optional: install offline TTS fallback
pip install pyttsx3

# Run
python3 sashell.py

On first run, SaShell will ask for your Sarvam API key if not set in environment. Get one free at: https://dashboard.sarvam.ai


Startup Flags

Flag Description
--help Show full command reference and exit
--version Show version, model, TTS and language status
--tts Boot with text-to-speech already enabled
--no-ai Pure shell mode — zero Sarvam API calls
--lang=Hindi AI responds in Hindi (or any Indian language) from boot
python3 sashell.py --tts --lang=Tamil
python3 sashell.py --no-ai

How It Works

Every command is silently judged by sarvam-m before running:

Verdict What happens
OK Runs immediately, no interruption
DANGEROUS Asks y/N before running
TYPO Suggests corrected command, asks y/N
EASTER_EGG AI responds playfully instead of running

If Sarvam is unreachable, the command runs anyway. It never blocks you.


Shell Commands

SaShell runs every Linux command natively. Below is a reference.

File & Directory

Command Description
ls -la List all files including hidden, with details
cd <dir> / cd .. / cd ~ Navigate directories
pwd Print current directory
mkdir -p a/b/c Create nested directories
rm -rf <dir> Delete folder recursively ⚠
cp -r <src> <dst> Copy file or folder
mv <src> <dst> Move or rename
touch <file> Create empty file
cat / less / head / tail <file> Read file contents
tail -f <file> Follow file live (logs)
wc -l <file> Count lines
diff <f1> <f2> Compare two files
find . -name "*.py" Find files by name pattern
find . -size +100M Find files over 100MB
du -ah . \| sort -rh \| head -10 Top 10 biggest files
stat <file> File metadata
file <file> Detect file type
ln -s <target> <link> Create symlink
chmod +x <file> Make executable
chown user:group <file> Change ownership ⚠

Search & Text

Command Description
grep -rn "pattern" . Recursive search with line numbers
grep -i "pattern" <file> Case-insensitive search
awk '{print $1}' <file> Print first column
sed 's/old/new/g' <file> Find and replace
cut -d',' -f1 <file> Cut by delimiter
sort -rn <file> Reverse numeric sort
uniq <file> Remove duplicate lines
tr 'a-z' 'A-Z' Transform characters
xargs Pipe args to command

Pipes, Redirects & Chaining

Syntax Description
cmd1 \| cmd2 Pipe output to next command
cmd > file Redirect output to file (overwrite)
cmd >> file Append output to file
cmd 2> err.log Redirect stderr
cmd &> all.log Redirect stdout + stderr
cmd1 && cmd2 Run cmd2 only if cmd1 succeeds
cmd1 \|\| cmd2 Run cmd2 only if cmd1 fails
cmd & Run in background
$(cmd) Command substitution

Processes & System

Command Description
ps aux --sort=-%cpu \| head -10 Top CPU hogs
top / htop Live process monitor
kill <pid> / killall <name> Kill process ⚠
jobs / bg / fg Job control
nohup cmd & Run immune to hangup
uptime System uptime and load averages
uname -a Full system info
whoami / who / id User info
env / export VAR=val Environment variables
history \| tail -20 Last 20 commands
watch -n 2 <cmd> Repeat command every 2 seconds
time <cmd> Measure command runtime

Disk & Memory

Command Description
df -h Disk usage
free -h RAM and swap usage
lsblk List block devices
du -sh <dir> Size of a directory

Network

Command Description
ip addr show Network interfaces and IPs
ss -tuln Open ports
ping <host> Ping a host
curl -O <url> Download a file
wget <url> Download a file
ssh user@host SSH into remote machine
scp file user@host:/path Copy file to remote
rsync -av src/ dst/ Sync folders
dig <domain> DNS lookup
traceroute <host> Trace network path

Archives & Compression

Command Description
tar -czf out.tar.gz dir/ Compress folder to .tar.gz
tar -xzf file.tar.gz Extract .tar.gz
zip -r out.zip dir/ Zip a folder
unzip file.zip Extract zip
gzip / gunzip Compress / decompress

Git

Command Description
git init / git clone <url> Init or clone repo
git status / git diff Check changes
git add . && git commit -m "msg" Stage and commit
git push / git pull Sync with remote
git log --oneline Compact history
git checkout -b <branch> Create and switch branch
git stash Stash uncommitted changes

Package Managers ⚠ all ask y/N

Command Description
apt install / remove <pkg> Debian/Ubuntu packages
apt update && apt upgrade Update system
pip install <pkg> Python packages
pip list / pip show <pkg> Inspect packages
npm install <pkg> Node packages

Services — systemctl ⚠ ask y/N

Command Description
systemctl status <svc> Check service status
systemctl start/stop/restart <svc> Control service
systemctl enable <svc> Enable on boot
journalctl -f Follow system logs

Chat Mode

Say any of these to open a full AI conversation:

Type back to return to the shell. Chat keeps memory across the session. TTS auto-speaks replies when enabled.


Text to Speech

Uses Sarvam Bulbul v3. Falls back to pyttsx3 (offline) if unavailable.

Command Description
tts on Enable TTS — 🔊 shows in prompt
tts off Disable TTS
tts say <text> Speak any text immediately
tts replay Replay last chat reply
tts voice <name> Change voice
--tts Quick toggle on/off

Available voices: Shubh (default), Aditya, Ritu, Priya, Neha, Rahul, Pooja, Rohan, Simran, Kavya, Amit, Dev, Ishita, Shreya, Varun, Kabir

pip install pyttsx3   # for offline fallback

Language Support

Method Example
At boot python3 sashell.py --lang=Hindi
While running lang Tamil
Check current lang

Supported: Hindi, Tamil, Telugu, Kannada, Malayalam, Bengali, Gujarati, Marathi, Punjabi, and more.


SaShell Builtins

Command Description
help / --help Full command reference
--version Version and status info
lang <X> Change AI response language
tts <subcommand> TTS controls
fortune Random terminal wisdom 🔮
clear Clear screen
exit / quit Leave SaShell

Easter Eggs 🥚

Phrase Hint
sudo make me a sandwich Classic
what is love Baby don’t hurt me
meaning of life 42
who are you SaShell introduces itself
why Philosophy
hello / hi Greeting with attitude
fortune Random terminal wisdom
rm -rf / Nice try

More are hidden. Explore.


SaShell MK 3.0.0