Skip to main content

An open-source offensive-security AI agent that lives in your terminal.

Project description

riftor

An open-source offensive-security AI agent that lives in your terminal. Find the rift. Open it. Cross through.

riftor is a Python TUI pentest assistant: a full-screen Textual interface backed by litellm, organised around the RIFT methodology — Recon → Intrusion → Foothold → Takeover.

It's cloud-first (Anthropic, OpenAI, OpenRouter, …) for the strongest agent behaviour, with local Ollama supported as an option.

Status: Phase 2. The agent can use tools (bash/read/write/edit/grep/glob/ webfetch) with permission prompts and an audit log. Scope enforcement and the engagement engine are next — see todo.md.

Requirements

  • Python 3.11+
  • uv
  • A model — set one of ANTHROPIC_API_KEY, OPENAI_API_KEY, OPENROUTER_API_KEY (or run a local Ollama server)

Run

export ANTHROPIC_API_KEY=sk-ant-...   # or OPENAI_API_KEY, etc.
uv sync
uv run riftor

On first launch riftor writes a config file and picks a default model from your environment keys (a cloud provider). If no key is set but an Ollama server is running, it falls back to that.

uv run riftor --config   # show the config file path
uv run riftor --version

Configure

~/.config/riftor/config.toml:

[riftor]
model = "anthropic/claude-sonnet-4-6"  # any litellm model id
# api_key = "sk-..."                   # prefer the provider's env var
temperature = 0.3
max_tokens = 2048
theme = "rift"
lore = true

# Local option (Ollama):
# model = "ollama_chat/llama3.1"
# api_base = "http://localhost:11434"

Commands

Command Action
/help show commands
/clear clear the conversation (Ctrl+L)
/model [name] show or switch the model
/stage [R|I|F|T] show or set the RIFT stage
/tools list available tools
/lore toggle the rift persona
/exit quit (Ctrl+C)

Esc cancels a running response. Dangerous tools (bash/write/edit) prompt for approval; every tool call is written to an audit log.

Use responsibly

riftor is for authorized security testing only. You are responsible for having explicit, written permission for any system you assess.

License

GPL-3.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

riftor-0.0.1.tar.gz (45.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

riftor-0.0.1-py3-none-any.whl (48.6 kB view details)

Uploaded Python 3

File details

Details for the file riftor-0.0.1.tar.gz.

File metadata

  • Download URL: riftor-0.0.1.tar.gz
  • Upload date:
  • Size: 45.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for riftor-0.0.1.tar.gz
Algorithm Hash digest
SHA256 ad2f24bc850f3b32705c70b86fad41af0780f3bf39a3465d391e7884a694a450
MD5 e270ed929b7ed240e8d4b9429efabf04
BLAKE2b-256 cc5a797f4aceac53591c2a205aeddb0c62d8937d1ba90ea6336f6a7753dba4a3

See more details on using hashes here.

File details

Details for the file riftor-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: riftor-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 48.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for riftor-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 be49e6c4d3e69252cee1ef18329181bd4c15791263f1e58a280ee5cbeeeec5d4
MD5 ac9e924f8dd08036dfc269c58fede48f
BLAKE2b-256 2160b3ed213491d89ba3957040009dcdc5c1b483b44d2b4026051c5e9528b444

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page