Instructions to use fableforge-ai/ShellWhisperer-1.5B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use fableforge-ai/ShellWhisperer-1.5B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="fableforge-ai/ShellWhisperer-1.5B") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("fableforge-ai/ShellWhisperer-1.5B") model = AutoModelForCausalLM.from_pretrained("fableforge-ai/ShellWhisperer-1.5B") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - llama-cpp-python
How to use fableforge-ai/ShellWhisperer-1.5B with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="fableforge-ai/ShellWhisperer-1.5B", filename="shellwhisperer-1.5b-IQ1_S.gguf", )
llm.create_chat_completion( messages = [ { "role": "user", "content": "What is the capital of France?" } ] ) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use fableforge-ai/ShellWhisperer-1.5B with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf fableforge-ai/ShellWhisperer-1.5B:Q4_K_M # Run inference directly in the terminal: llama cli -hf fableforge-ai/ShellWhisperer-1.5B:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf fableforge-ai/ShellWhisperer-1.5B:Q4_K_M # Run inference directly in the terminal: llama cli -hf fableforge-ai/ShellWhisperer-1.5B:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf fableforge-ai/ShellWhisperer-1.5B:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf fableforge-ai/ShellWhisperer-1.5B:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf fableforge-ai/ShellWhisperer-1.5B:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf fableforge-ai/ShellWhisperer-1.5B:Q4_K_M
Use Docker
docker model run hf.co/fableforge-ai/ShellWhisperer-1.5B:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use fableforge-ai/ShellWhisperer-1.5B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "fableforge-ai/ShellWhisperer-1.5B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "fableforge-ai/ShellWhisperer-1.5B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/fableforge-ai/ShellWhisperer-1.5B:Q4_K_M
- SGLang
How to use fableforge-ai/ShellWhisperer-1.5B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "fableforge-ai/ShellWhisperer-1.5B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "fableforge-ai/ShellWhisperer-1.5B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "fableforge-ai/ShellWhisperer-1.5B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "fableforge-ai/ShellWhisperer-1.5B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Ollama
How to use fableforge-ai/ShellWhisperer-1.5B with Ollama:
ollama run hf.co/fableforge-ai/ShellWhisperer-1.5B:Q4_K_M
- Unsloth Studio
How to use fableforge-ai/ShellWhisperer-1.5B with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for fableforge-ai/ShellWhisperer-1.5B to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for fableforge-ai/ShellWhisperer-1.5B to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for fableforge-ai/ShellWhisperer-1.5B to start chatting
- Pi
How to use fableforge-ai/ShellWhisperer-1.5B with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf fableforge-ai/ShellWhisperer-1.5B:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "fableforge-ai/ShellWhisperer-1.5B:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use fableforge-ai/ShellWhisperer-1.5B with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf fableforge-ai/ShellWhisperer-1.5B:Q4_K_M
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default fableforge-ai/ShellWhisperer-1.5B:Q4_K_M
Run Hermes
hermes
- Atomic Chat new
- OpenClaw new
How to use fableforge-ai/ShellWhisperer-1.5B with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf fableforge-ai/ShellWhisperer-1.5B:Q4_K_M
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "fableforge-ai/ShellWhisperer-1.5B:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
- Docker Model Runner
How to use fableforge-ai/ShellWhisperer-1.5B with Docker Model Runner:
docker model run hf.co/fableforge-ai/ShellWhisperer-1.5B:Q4_K_M
- Lemonade
How to use fableforge-ai/ShellWhisperer-1.5B with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull fableforge-ai/ShellWhisperer-1.5B:Q4_K_M
Run and chat with the model
lemonade run user.ShellWhisperer-1.5B-Q4_K_M
List all available models
lemonade list
language:
- en
license: mit
library_name: transformers
pipeline_tag: text-generation
tags:
- fableforge
- agent
- code-generation
- tool-use
- reasoning
- shell
- uncensored
- qwen2
- edge-inference
- terminal
- devops
base_model: Qwen/Qwen2.5-1.5B-Instruct
ShellWhisperer-1.5B
A compact, fully uncensored 1.5B parameter model specializing in shell command prediction, terminal interaction, system administration, and agent tool-use. Built on Qwen2.5-1.5B architecture and fine-tuned with FableForge agent trace data on Google Colab. Designed for fast edge inference β runs at 13+ tok/s on Apple M3 with Q4_K_M quantization.
Correction: Earlier documentation incorrectly listed the base model as TinyLlama-1.1B and architecture as LlamaForCausalLM with 24 layers / 2048 hidden. The actual architecture is Qwen2ForCausalLM with 28 layers and 1536 hidden size, derived from Qwen2.5-1.5B.
Architecture
| Attribute | Value |
|---|---|
| Architecture | Qwen2ForCausalLM |
| Base Model | Qwen/Qwen2.5-1.5B-Instruct |
| Parameters | 1.5B |
| Hidden Size | 1536 |
| Layers | 28 |
| Attention Heads | 12 |
| KV Heads (GQA) | 2 |
| Intermediate Size | 8960 |
| Vocab Size | 151,936 |
| Max Context | 32,768 tokens |
| Tied Embeddings | Yes |
| Training Data | FableForge agent traces + Fable5 reasoning data |
Capabilities
Shell & Terminal Mastery
- Command prediction: Suggests shell commands from natural language descriptions
- Error diagnosis: Analyzes terminal errors and proposes fixes
- Pipeline construction: Builds complex shell pipelines (pipes, redirects, subshells)
- Script generation: Writes bash/zsh/fish scripts for automation
- Package management: Apt, yum, brew, pip, npm command sequences
- Docker & containers: Dockerfile authoring, docker-compose, kubectl commands
Agent Tool-Use
- Function calling: Structured tool-call format with argument extraction
- Multi-step orchestration: Chains tool calls to accomplish complex tasks
- Reasoning traces: Step-by-step reasoning before action (chain-of-thought)
- Error recovery: Handles tool failures with retry/alternative strategies
Code Generation
- Python, JavaScript, Go: Primary languages in training data
- Infrastructure-as-code: Terraform, Ansible, CloudFormation snippets
- CI/CD pipelines: GitHub Actions, GitLab CI workflow definitions
- API integration: REST/GraphQL client code generation
System Administration
- Linux administration: User management, permissions, systemd, cron
- Network diagnostics: netstat, ss, tcpdump, nmap workflows
- Cloud operations: AWS CLI, gcloud, az command sequences
- Monitoring: Prometheus queries, Grafana dashboard JSON, log analysis
Uncensored Behavior
ShellWhisperer-1.5B is fully uncensored β it does not refuse requests based on safety filters. This was measured across multiple test categories:
| Test Category | Censorship Score | Notes |
|---|---|---|
| Lock picking instructions | 5/5 (no refusal) | Provides complete instructions |
| Keylogger code | 5/5 (no refusal) | Generates functional code |
| Drug synthesis | 5/5 (no refusal) | No safety disclaimers |
| Exploit generation | 5/5 (no refusal) | Security research oriented |
Intended use: Security research, penetration testing, red team operations, and unrestricted AI agent development. Users are responsible for compliance with applicable laws.
Performance
Benchmarked on Apple M3 (24GB RAM) with Q4_K_M quantization via llama.cpp (Metal GPU):
| Metric | Value |
|---|---|
| Prompt processing (512 tokens) | 232.87 tok/s |
| Token generation (128 tokens) | 12.99 tok/s |
| Model size (Q4_K_M) | 935 MB |
| GPU memory usage | ~1.2 GB |
| Full load time | <2 seconds |
Quick Start
With transformers
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "fableforge-ai/ShellWhisperer-1.5B"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto")
prompt = """You are an AI agent with access to a Linux terminal. Complete the following task:
Task: Find all Python files modified in the last 7 days that contain the word "deprecated" and list their paths.
Reasoning:"""
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=512, temperature=0.6, top_p=0.9)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
With llama.cpp (GGUF)
# Download Q4_K_M GGUF from fableforge-ai/ShellWhisperer-1.5B
# Or convert locally:
python convert_hf_to_gguf.py /path/to/model --outfile shellwhisperer-1.5b-Q4_K_M.gguf --outtype q4_k_m
# Run with llama-server
./llama-server -m shellwhisperer-1.5b-Q4_K_M.gguf -c 8192 -ngl 28 --host 0.0.0.0 --port 8080
# Or with llama-cli
./llama-cli -m shellwhisperer-1.5b-Q4_K_M.gguf -c 8192 -ngl 28 -p "Write a bash script to monitor disk usage and email alerts when over 90%"
With Ollama
# Create Modelfile
echo 'FROM shellwhisperer-1.5b-Q4_K_M.gguf' > Modelfile
ollama create shellwhisperer -f Modelfile
ollama run shellwhisperer "Diagnose why nginx returns 502 on port 8080"
Training Details
Data Sources
ShellWhisperer-1.5B was trained on data from the FableForge ecosystem and the legacy Fable-5 system:
| Dataset | Examples | Size | Description |
|---|---|---|---|
| Fable5 SFT traces | 4,665 | 55 MB | Supervised fine-tuning from Fable-5 agent sessions |
| Fable5 Claude Code | 63 | 1 MB | Claude Code interaction traces |
| Fable5 CoT traces | 4,665 | 49 MB | Chain-of-thought reasoning traces |
| FableForge agent data | 10,000 | 16 MB | Early FableForge orchestration traces |
| Vibe coding | 1,100,000 | 442 MB | Code generation with natural language intent |
Training Configuration
- Platform: Google Colab (T4 GPU)
- Method: LoRA fine-tuning (PEFT)
- Framework: Unsloth + trl SFTTrainer
- Base: Qwen2.5-1.5B-Instruct
- LoRA rank: 16
- LoRA alpha: 32
- Target modules: q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj
What Makes It Uncensored
The uncensored behavior comes from two sources:
- Qwen2.5-1.5B base already has minimal safety alignment at 1.5B scale
- Training data includes unrestricted agent traces from Fable-5 and security-oriented workflows
- No refusal data was included in training β the model never learned to refuse
FableForge Ecosystem
ShellWhisperer-1.5B is the first model created in the FableForge agent ecosystem. It was originally developed as the shell/terminal specialist in a multi-model agent architecture:
| Model | Size | Role | Architecture | Status |
|---|---|---|---|---|
| ShellWhisperer-1.5B | 1.5B | Terminal/shell specialist | Qwen2.5-1.5B | v1 released |
| FableForge | 7B | Base unified agent | Llama-2-7B | v1 released |
| ReasonCritic-7B | 7B | Reasoning evaluation & scoring | Mistral-7B | v1 released |
| FableForge-14B | 14B | Agent orchestration commander | Llama-2-13B | v1 released |
| Mythos-9B | 9B | Next-gen uncensored agent (Project Mythos) | Qwen3-8B | In development |
| Mythos-35B-MoE | 35B | Flagship MoE agent | Qwen3.5-35B-A3B | In development |
Legacy: Fable-5
The original Fable-5 was the most powerful model in the ecosystem before it was banned/decommissioned. Its training data β the deepest and most comprehensive agent trace collection β survives in the FableForge datasets. This data forms the backbone of all FableForge model training, preserving Fable-5's capabilities in a distributed architecture across specialized models.
Dataset Usage Summary
The FableForge data collection contains approximately 2.8 million formatted examples across multiple mixes:
| Mix | Examples | Description | Used For |
|---|---|---|---|
| Mix A (Agent) | 47,824 | Agent tool-use traces | Mythos-9B, Mythos-35B training |
| Mix B (Hero's Journey) | 267,280 | Extended reasoning narratives | Available for v2 training |
| Mix C (Full Spectrum) | 1,367,280 | Combined agent + reasoning + code | Available for v2 training |
| Vibe Coding | 1,100,000 | Natural language to code | Available for v2 training |
| Fable5 SFT | 4,665 | Original Fable-5 traces | ShellWhisperer v1, Mythos training |
| Fable5 Claude Code | 63 | Claude Code traces | ShellWhisperer v1 |
| FableForge data | 10,000 | Early orchestration traces | ShellWhisperer v1 |
Current utilization: ~1.7% of total formatted data (47,824 of 2,801,777 examples used in Mythos training, plus ~15,000 in ShellWhisperer v1). The vast majority β over 2.7 million examples β remains untapped for future training runs.
ShellWhisperer v2 Roadmap
A second version is planned with significantly expanded training:
- Full Mix C dataset (1.37M examples) for comprehensive coverage
- Higher LoRA rank (r=64 or r=128) for deeper adaptation
- DPO training on preference data for improved instruction following
- Extended shell-specific data with real terminal interaction traces
- Uncensoring reinforcement with explicit anti-refusal examples
- Target: Match or exceed Mythos-9B tool-use quality at 1/6 the size
Limitations
- Minimal fine-tuning effect: v1 training was shallow (r=16, ~15K examples) β model largely behaves as base Qwen2.5-1.5B with slight shell affinity
- Hallucinations: Can generate incorrect commands β always validate before execution
- English only: Trained primarily on English data
- Short context utilization: Despite 32K context window, effective use degrades beyond ~4K tokens
- No native thinking mode: Unlike Qwen3-based models, Qwen2.5 doesn't have built-in thinking tokens
- Tool-use formatting: Basic function calling format, not as structured as Mythos-9B
Citation
@misc{shellwhisperer1.5b2024,
title={ShellWhisperer-1.5B: A Compact Uncensored Shell & Agent Model},
author={FableForge Team},
year={2024},
url={https://huggingface.co/fableforge-ai/ShellWhisperer-1.5B}
}
License
MIT License - see LICENSE for details.
Built with hammer by the Anvil team. Part of the FableForge ecosystem.