| /clear | Clear the conversation history |
| /compact | Summarise the history to save context window space |
| /rewind | Undo the last exchange |
| /retry | Re-run the last message with a fresh call |
| /history | Show the conversation log for this session |
| /context | Session dashboard: model, memory, and token usage |
| /pin <message> | Pin a reminder into every request |
| /pin | List all pinned reminders |
| /pin clear | Remove one pin or all pins |
/model and /providers are the same command — one place to manage everything.
| /model | Open the interactive provider and model manager. Type a number, name, or model to switch. Type add to add a provider or remove <name> to remove one. |
| /model <name> | Smart switch. Accepts a provider name (groq), a model name (gemini-2.0-flash), or a partial match. |
| /model <provider>/<model> | Explicit format, e.g. /model groq/llama-3.3-70b-versatile |
| /ollama | List installed Ollama models and pick one interactively |
| /ollama <model> | Switch directly to an Ollama model, e.g. /ollama llama3:8b |
| /routing | Show provider ranking and routing reasons for the active skill |
franki uses an agentic loop. It can call tools, see the results, and continue until the task is done. Destructive tools always ask for confirmation unless /auto on is active.
| /undo | Revert the last file change made by the agent |
| /diff | Show a diff of all files changed this session |
| /auto on|off | Enable or disable auto-accept for all tool calls |
| /sandbox on|off | Block all destructive tools: write, run, and patch |
| /audit | Show the recent tool execution log |
| /test | Run project tests and inject the output into context |
| /test <command> | Run a specific test command |
Tools the agent can call:
read_file write_file edit_file run_command list_directory search_files grep_files apply_patch run_background check_background web_search
Use these prefixes anywhere in your message to inject external content.
| @file.py | Inject a file's contents into the message |
| @src/ | Inject a directory tree and all file contents |
| @https://... | Fetch a URL and inject its text |
| @git | Inject branch, status, diff, and recent commits |
| @clipboard | Inject the current clipboard contents |
| !command | Run a shell command and inject its output, e.g. !nmap -sV 10.10.10.1 |
# Examples
@package.json what dependencies are outdated?
@logs/error.log analyse these errors
@git write a commit message for these changes
!nmap -sV 10.10.10.1 what services are exposed here?
Skills change the system prompt to specialise the AI for a specific domain. franki auto-detects the right skill from your message, and you can also switch manually.
| /skill coding | Code generation, review, and debugging (default) |
| /skill pentest | CEH-aligned recon, scanning, exploitation, and MITRE ATT&CK reporting |
| /skill soc | Log analysis, alert triage, IOC identification, and incident response |
| /skill security | Broad security mode covering CTF, CEH/OSCP/eJPT prep, vulnerability research, secure coding, and cryptography |
Custom skills can be added by placing a .txt system-prompt file in ~/.config/franki/skills/.
| /remember <fact> | Save a fact to long-term memory. Persists across sessions. |
| /memories | List all saved memory, scopes, and notes |
| /forget <id|all> | Remove a fact by ID, or clear all memory |
# Examples
/remember I use Python 3.11 and FastAPI
/remember my pentest lab is 10.10.10.0/24
/memories
/forget 2
| /export | Save the session as a markdown file |
| /copy | Copy the last AI response to the clipboard |
| /note <text> | Save a timestamped note |
| /report | Generate a structured report from the session |
| /search <query> | Run a manual web search and inject the results into context |
| /cost | Show token usage and estimated cost for this session |
Auto-search: franki automatically runs a web search before the AI responds when your message contains keywords such as latest, current, today, news, or a CVE ID like CVE-2024-12345. Set a Tavily API key with franki config set tavily_api_key <key> for best results. Without one, it falls back to DuckDuckGo.
| /mitre <behaviour> | Map a behaviour to a MITRE ATT&CK technique |
| /payload <type> | Suggest payloads for an attack type |
| /tools <task> | Suggest the right tools for a pentest task |
| /explain <tool> | Explain a tool and its usage |
| /scope <ip/cidr> | Set the pentest target scope |
| /scope clear | Clear the active scope |
| /template | List saved prompt templates |
| /template save <name> <prompt> | Save a prompt as a named template |
| /template <name> | Run a saved template |
| /template delete <name> | Delete a template |
| /sessions | List saved sessions |
| /sessions resume <n> | Restore a previous session by number |
| /sessions save | Save the current session |
| /branch save | Checkpoint the current conversation |
| /branch restore <name> | Revert to a saved checkpoint |
| /branch | List all checkpoints |
| /cd <dir> | Change the working directory and update context for file operations |
| /mcp | List connected MCP servers and their tools |
| /mcp add <name> | Add an MCP server connection |
| /mcp remove <name> | Remove an MCP server connection |
| /auto on|off | Enable or disable auto-accept for all tool calls |
| /autocommit on|off | Automatically commit file changes after every agent edit |
| /toolperms | View and edit per-tool permission overrides: always, ask, or never |
| /init | Re-run the provider setup wizard |
| /config | Open the interactive config editor |
| /profile | List saved config profiles |
| /profile save <name> | Save the current config as a named profile |
| /profile load <name> | Restore a named profile |
| /feedback <text> | Send feedback. Saved locally. |
| /help | Show all available commands |
| exit / quit | Exit franki. Prompts to save the session. |
| Alt+Enter / Esc→Enter | Insert a newline without submitting the message |
| Enter | Submit the message |
| /<tab> | Autocomplete slash commands. A popup appears as you type. |
Run these directly from your shell without entering the REPL.
franki fix <file> # analyse and fix bugs in a file franki review <file> # code review a file franki commit # generate a commit message from git diff franki explain <file> # explain what a file does franki resume # resume a saved session franki init # run the setup wizard franki --version # print the version