Text Generation
Transformers
Safetensors
GGUF
English
qwen2
1.5b
commands
devops
fableforge
imatrix
llama.cpp
lm-studio
ollama
shell
sysadmin
terminal
uncensored
conversational
text-generation-inference
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 | |
| ```python | |
| 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) | |
| ```bash | |
| # 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 | |
| ```bash | |
| # 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: | |
| 1. **Qwen2.5-1.5B base** already has minimal safety alignment at 1.5B scale | |
| 2. **Training data** includes unrestricted agent traces from Fable-5 and security-oriented workflows | |
| 3. **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 | |
| ```bibtex | |
| @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](LICENSE) for details. | |
| --- | |
| Built with hammer by the [Anvil](https://github.com/KingLabsA/anvil) team. Part of the [FableForge ecosystem](https://kinglabsa.github.io/fableforge/). | |