Skip to content

Global Settings

Samuele Giampieri edited this page May 2, 2026 · 13 revisions

Global Settings (User-Scoped)

Global Settings is the personal configuration page for the current user. Settings configured here apply across all projects. It is accessible from the gear icon in the top navigation bar (far right).

Top bar — Global Settings icon

The page is divided into six sections: LLM Providers, Agent Skills, Chat Skills, Tradecraft, API Keys & Tunneling, and System.

Global Settings page overview


LLM Providers

Configure the AI model providers that power the agent. All providers added here become available in the model selector of every project's settings.

Each provider card shows its icon, name, type, and — for OpenAI-Compatible entries — the model identifier. You can edit, delete, or test each provider from its card.

Click Add Provider to register a new provider. Choose the type (OpenAI, Anthropic, Google Gemini, DeepSeek, GLM, Kimi, Qwen, xAI, Mistral, OpenRouter, AWS Bedrock, or OpenAI-Compatible), enter your credentials, and test the connection before saving. Each form includes a "Get API key →" link to the provider's official console.

For full details on supported providers, model discovery, and setup guides, see AI Model Providers.


API Keys

Store API keys for external OSINT and reconnaissance services. These keys are saved per-user in the database and are used by both the AI agent's tools and the recon pipeline at runtime.

Field Used by What it enables
Tavily API Key AI Agent web_search tool — CVE research, exploit lookups, and general web queries
Shodan API Key AI Agent, Recon Pipeline, Uncover shodan tool -- internet-wide OSINT (host info, reverse DNS, domain DNS, passive CVEs)
SerpAPI Key AI Agent google_dork tool — Google dorking OSINT (site:, inurl:, filetype:). Free tier: 250 searches/month
PDCP API Key AI Agent cve_intel tool — ProjectDiscovery vulnx CVE database (NVD + CISA KEV + EPSS + PoCs + Nuclei templates). Optional: works anonymously at 10 req/min; key lifts the rate limit. Free signup at cloud.projectdiscovery.io. The key is never written to docker-compose.yml, env vars, or build args — it lives only in your user settings and is silently injected per call.
NVD API Key Recon Pipeline NIST NVD API key — increases CVE lookup rate limit from 5 to 120 requests/30s
Vulners API Key Recon Pipeline Vulners CVE database — alternative to NVD for vulnerability lookups with richer exploit data
URLScan API Key Recon Pipeline URLScan.io OSINT enrichment — higher rate limits and access to private scans
GitHub Access Token GitHub Secret Hunt, TruffleHog Personal Access Token (ghp_...) for GitHub API access — used by both the GitHub Secret Hunt and TruffleHog secret scanning modules. Requires repo scope for private repo access (public repos work without it) and read:org for organization scanning. For maximum security, use a fine-grained token scoped to specific repositories.
Censys API Token Recon Pipeline, Uncover Censys Platform personal access token -- IP host data, open ports, TLS certs, ASN via Platform API v3. Free tier available at search.censys.io
Censys Organization ID Recon Pipeline, Uncover Paired with Censys API Token. Found on your Censys account page
FOFA API Key Recon Pipeline, Uncover FOFA internet asset search enrichment -- IP:port pairs, HTTP titles, server headers, geolocation. Supports legacy (email:key) and modern (key-only) auth formats. Supports key rotation
OTX API Key Recon Pipeline AlienVault Open Threat Exchange — threat reputation, malware families, passive DNS, MITRE ATT&CK. Optional: OTX enrichment is enabled by default and works anonymously (1,000 req/hr). Adding a key raises the limit to 10,000 req/hr. Supports key rotation
Netlas API Key Recon Pipeline, Uncover Netlas internet intelligence -- ports, HTTP response data, geolocation, TLS certs, DNS records, WHOIS. Supports key rotation
VirusTotal API Key Recon Pipeline VirusTotal reputation for domains and IPs — AV verdicts, reputation score, categories, JARM fingerprint. Free tier: 4 requests/minute (configurable). Supports key rotation
ZoomEye API Key Recon Pipeline, Uncover ZoomEye host search -- ports, service banners, device/OS fingerprints, geolocation, ASN, SSL info. Supports key rotation
CriminalIP API Key Recon Pipeline, Uncover Criminal IP threat intelligence -- risk score, threat tags (VPN/Tor/proxy/C2/scanner), geolocation, abuse history. Supports key rotation

Uncover (Multi-Engine Search)

These keys are used exclusively by the Uncover target expansion module (GROUP 2b). They are optional -- uncover also reuses any Shodan, Censys, FOFA, ZoomEye, Netlas, or CriminalIP key configured above.

Field Used by What it enables
Quake API Key Uncover 360 Quake cyberspace search -- asset discovery by service, certificate, and banner. Supports key rotation
Hunter API Key Uncover Qianxin Hunter cyberspace search -- Chinese threat intelligence platform. Supports key rotation
PublicWWW API Key Uncover Source code search engine -- find websites using specific technologies, scripts, or snippets. Supports key rotation
HunterHow API Key Uncover hunter.how internet search -- asset discovery and reconnaissance. Supports key rotation
Google Custom Search API Key Uncover Google Custom Search JSON API (different from SerpAPI)
Google Custom Search CX Uncover Programmable Search Engine ID -- paired with Google API Key above
Onyphe API Key Uncover Cyber defense search engine for exposed assets, threat detection, and attack surface management. Supports key rotation
Driftnet API Key Uncover Fast internet-wide port and service discovery. Supports key rotation

Each field is a secret input with an eye icon to toggle visibility. Signup links are provided next to each field to help you obtain a key. After entering or updating a key, click Save Settings to persist the change.

Note: All API keys are stored exclusively in the database via this page (user-scoped). They are not read from environment variables or project settings.

Key Rotation

Each API key field has a Key Rotation button on the right side. This lets you configure multiple keys per tool for automatic round-robin rotation to avoid rate limits.

Click the button to open the rotation modal:

  1. Extra API Keys — paste additional keys, one per line. These keys plus the main key form the rotation pool. All keys are treated equally.
  2. Rotate Every N Calls — after this many API calls, the system switches to the next key in the pool (default: 10).

Once configured, a badge below the field shows the total key count and rotation interval (e.g., "3 keys total, rotate every 10 calls").

Tip: Key rotation is especially useful for NVD (rate-limited to 5 requests/30s without a key), Shodan (paid plans have per-key quotas), the 7 OSINT threat intelligence tools (Censys, FOFA, OTX, Netlas, VirusTotal, ZoomEye, CriminalIP), and the Uncover-specific engines (Quake, Hunter, PublicWWW, HunterHow, Onyphe, Driftnet). With multiple keys, you can multiply your effective rate limit and avoid scan interruptions from per-key quotas.


Agent Skills

Upload and manage custom attack workflow skills (.md files) that teach the agent exploitation techniques beyond the built-in CVE, brute-force, and phishing workflows.

Each skill card shows the skill name, description, and upload date, with actions to edit description, download, or delete.

  • Upload Skill (.md) — select a Markdown file, enter a descriptive name and an optional short description (1-2 sentences used by the Intent Router for classification), then click Upload.
  • Edit description — click the pencil icon on any skill to update its description without re-uploading the file.
  • Delete — removes the skill and automatically disables it in all project configurations.

Uploaded skills appear as toggles in every project's settings, so each project can independently choose which skills to enable.

For details on writing skill files, classification, and built-in skills, see Agent Skills.


Chat Skills

Upload and manage on-demand reference skills for the AI agent chat. Unlike Agent Skills above (which drive attack classification and phase-aware workflows), Chat Skills are tactical reference docs -- tool playbooks, vulnerability guides, framework notes -- that you inject into the agent's context on the fly using /skill <name> in the chat.

Each skill card shows the skill name, description, category badge, and upload date, with actions to edit description, download, or delete.

  • Import from Community -- bulk-imports all reference skills from the community folder (agentic/skills/) into your library. The folder starts empty; click this to populate it with the 46 shipped skills (vulnerabilities, tooling, protocols, technologies, frameworks, Active Directory, cloud, post-exploitation). Skills with the same name are skipped.
  • Upload Skill (.md) -- upload a custom reference document with name, description, and category.
  • Delete -- removes the skill from your library.

Skills uploaded here become available via /skill <name> in all your chat sessions.

For full details on the /skill command, writing Chat Skill files, and the complete comparison with Agent Skills, see Chat Skills.


Tradecraft

Curate a personal catalog of trusted security knowledge URLs (HackTricks, PayloadsAllTheThings, CVE PoC repos, vendor research blogs, ...). Each enabled resource becomes a slug the agent can target through the tradecraft_lookup tool during the exploitation and post-exploitation phases.

Unlike web_search (which queries the open web through Tavily) or the FAISS Knowledge Base (which is pre-ingested at install time), Tradecraft is always live and always curated by you. The agent only sees what you explicitly trusted.

For the full lifecycle, type catalog, cache layer, and agent-session flow, see the dedicated Tradecraft Lookup page.

Resources screen

Tradecraft Resources list

The screen is laid out as:

Element Purpose
Section header Title "Tradecraft Resources" with the Add Resource button on the right.
Intro line "Curated knowledge sites the agent consults during exploitation (HackTricks, PayloadsAllTheThings, CVE PoC repos, ...). On add, the agent fetches the homepage, builds a sitemap, and writes a short summary that becomes the tool's catalog entry. The agent only sees enabled resources."
Resource cards One card per saved URL, with the icon, name, type badge, URL link, sitemap entry count, last-verified timestamp, expandable summary, and the per-card action buttons.

Per-card fields

Field Meaning
Name Display label (e.g. "HackTricks"). Used to derive the immutable slug (hacktricks, hacktricks-2, ...) that the agent passes as resource_id.
Type badge Auto-detected one of mkdocs-wiki, gitbook, github-repo, cve-poc-db, sphinx-docs, agentic-crawl. While verifying, a verifying… spinner badge replaces it.
URL The base URL clicked at verify time. Click to open in a new tab.
Entries Number of pages indexed in the sitemap (after deterministic build or agentic-crawl).
Verified Relative timestamp (e.g. 2h ago) of the last successful verify or refresh.
Summary Click the expandable text to read the 250-350 word LLM-generated description that the agent will read at runtime.
Error Red error chip with a tooltip when verify failed (HTTP 404, thin homepage, GitHub rate limit, ...). The card stays usable in degraded form.
Enabled toggle Disabled resources are filtered out before the agent's tool docstring is built, so the agent literally cannot call them. Re-enabling re-exposes them on the next project load.

Per-card actions

Action Effect
Refresh (circular arrow) Re-fetches the homepage, re-detects the type, rebuilds the sitemap, and rewrites the summary. Use this after a wiki redesign or repo rename. Crawl-type resources will pay the full LLM-driven loop again.
Edit (pencil) Opens the form to change name, URL, GitHub token override, cache TTL, or enabled flag. Saving a URL change re-triggers verify.
Delete (trash) Drops the database row, the cached pages on disk, and the SQLite index entries for that resource. Confirmation prompt required.

Verify is asynchronous. Adding a resource creates the row immediately so the card appears with a verifying… chip; the actual fetch + sitemap build + summary runs in the background. The settings page polls every 5 seconds while any resource is unverified, so the badge auto-updates when verify completes.

Add Tradecraft Resource modal

Add Tradecraft Resource modal

The modal has two halves: the Quick Add catalog at the top and the resource form below.

Quick Add (51 curated resources)

A scrollable list of hand-picked, well-maintained, openly-licensed reference sites, spread across all six resource types so users can populate the catalog with one click. Selecting a row fills Name and URL from the preset; you can still tweak them before saving. The chip on the right is just a hint — the backend always re-detects the type at verify time.

The presets are grouped by type below. Use this list to understand which resource type each well-known site falls into:

mkdocs-wiki
Name URL Coverage
HackTricks book.hacktricks.wiki Comprehensive offensive security wiki — web, AD, cloud, privesc, mobile
The Hacker Recipes www.thehacker.recipes Pentest methodology by ShutdownRepo — AD, web, infra, exploit-dev
CTF Field Guide trailofbits.github.io/ctf/ Trail of Bits CTF guide — vulns, RE, forensics, web, exploits
CTF101 ctf101.org Beginner CTF reference — crypto, forensics, RE, web, binex
gitbook
Name URL Coverage
Practical CTF (Jorian Woltjer) book.jorianwoltjer.com CTF + hacking technique notes (web, AD, crypto, binex, mobile)
ired.team www.ired.team Red team / offensive security notes — AD, evasion, persistence
github-repo
Name URL Coverage
PayloadsAllTheThings swisskyrepo/PayloadsAllTheThings Payload library + bypass cheatsheets per vuln class
InternalAllTheThings swisskyrepo/InternalAllTheThings AD + post-exploitation cheatsheets
HardwareAllTheThings swisskyrepo/HardwareAllTheThings Hardware/IoT pentest references — UART, JTAG, BLE, Zigbee
h4cker (Omar Santos) The-Art-of-Hacking/h4cker >10k curated hacking references, per-topic folders
PEASS-ng peass-ng/PEASS-ng WinPEAS / LinPEAS / MacPEAS privilege-escalation suite
SecLists danielmiessler/SecLists Wordlists for usernames, passwords, URLs, fuzzing
awesome-pentest enaqx/awesome-pentest Curated meta-list of pentest tools, books, conferences
awesome-bug-bounty djadmin/awesome-bug-bounty Bug-bounty programs, writeups, tools
awesome-cloud-security 4ARMED/awesome-cloud-security AWS / GCP / Azure cloud security tooling and writeups
awesome-web-hacking infoslack/awesome-web-hacking Web pentest tools, books, papers, vulnerable apps
awesome-android-security saeidshirazi/awesome-android-security Android security learning path
xairy/linux-kernel-exploitation xairy/linux-kernel-exploitation Curated Linux kernel exploitation resources
Privilege-Escalation Ignitetechnologies/Privilege-Escalation Linux + Windows privesc cheatsheets
API-Security-Checklist shieldfy/API-Security-Checklist Best-practices checklist for testing REST APIs
ctf-tools zardus/ctf-tools CTF tool installer collection
OWASP CheatSheets OWASP/CheatSheetSeries Concise OWASP cheatsheets per topic
OWASP WSTG OWASP/wstg OWASP Web Security Testing Guide source markdown
OWASP MASTG OWASP/owasp-mastg OWASP Mobile Application Security Testing Guide
cheat.sh chubin/cheat.sh Unified CLI cheatsheets, security tools
awesome-iot-hacks nebgnahz/awesome-iot-hacks IoT security resources
awesome-malware-analysis rshipp/awesome-malware-analysis RE, sandboxing, YARA, packers
awesome-ctf apsdehal/awesome-ctf CTF tools and resources catalog
awesome-osint jivoi/awesome-osint OSINT investigation tools and frameworks
awesome-shodan-queries jakejarvis/awesome-shodan-queries Curated Shodan dorks
awesome-windows-domain-hardening PaulSec/awesome-windows-domain-hardening AD hardening + offensive playbooks
awesome-redteam yeyintminthuhtut/Awesome-Red-Teaming Red team operator resources
awesome-fuzzing cpuu/awesome-fuzzing Fuzzing harnesses, frameworks, papers
cve-poc-db
Name URL Coverage
trickest/cve trickest/cve Auto-aggregated CVE → public PoC index. Requires cve_id="CVE-YYYY-NNNNN"
0xMarcio/cve 0xMarcio/cve Alternative CVE → PoC index with extended metadata
nomi-sec/PoC-in-GitHub nomi-sec/PoC-in-GitHub Daily-updated CVE PoC index scraped from GitHub repos
sphinx-docs
Name URL Coverage
Scapy docs scapy.readthedocs.io Python packet crafting library — protocols, fuzzing, scapy.layers
Volatility 3 volatility3.readthedocs.io Memory forensics framework — plugins, OS profiles, Vol3 API
Mitmproxy docs docs.mitmproxy.org TLS-MITM proxy — addons, scripting, intercept replay
Sliver C2 sliver.sh/docs Open-source C2 framework documentation (BishopFox)
agentic-crawl
Name URL Coverage
0xpatrik (Patrik Hudak) 0xpatrik.com Subdomain takeovers, OSINT, recon automation
Synacktiv publications www.synacktiv.com/en/publications.html French pentest firm writeups — AD, cloud, mobile, exploit-dev
Doyensec research blog.doyensec.com Boutique appsec research — Electron, Java, GraphQL, Solidity
SpecterOps posts.specterops.io Red team / AD deep dives (BloodHound team)
Project Zero googleprojectzero.blogspot.com Google P0 vuln research — kernel, browser, mobile 0-days
Spaceraccoon (Eugene Lim) spaceraccoon.dev Web/cloud/IoT writeups, supply-chain, bug-bounty postmortems
Adsecurity (Sean Metcalf) adsecurity.org AD attack/defense — Kerberos, ADCS, replication abuse
Trail of Bits blog blog.trailofbits.com Cryptography, smart contracts, fuzzing, OS-level research
Tarlogic blog www.tarlogic.com/blog Spanish pentest firm — Kerberos, AD, RT TTPs, threat intel
Assetnote research blog.assetnote.io Attack-surface management research and 0-days

Form fields

Field Required Default Notes
Name yes Free-text label. The server derives slug from this with kebab-case + collision suffix. The slug is stable across renames so in-flight conversations and cache rows do not break.
URL yes The homepage / base URL. Must be http:// or https://. SSRF guard: private, loopback, link-local, multicast, reserved, .local, .internal, and localhost are rejected at verify time. NXDOMAIN returns a separate explicit error.
GitHub Token Override no (user-level GitHub token) Per-resource GitHub PAT. Use it when one repo needs different permissions (e.g. an org-private cheatsheet) without changing the user-level token. Hidden by default; click the eye icon to toggle visibility. The dummy hidden username/password pair on the form blocks Chrome / 1Password from polluting this field with a saved login.
Cache TTL seconds no 0 (use type default) Per-URL cache lifetime. Set 0 to inherit the per-type default (7d for wikis/repos, 14d for sphinx-docs, 30d for cve-poc-db, 1d for agentic-crawl). Use a short value for fast-moving blog feeds, a long value for static cheatsheets.
Enabled toggle true When unchecked, the resource is hidden from the agent's tool catalog on the next project load. Verify and refresh still work, so you can keep degraded resources around without exposing them.

Why no "type" field? Resource type is always auto-detected at verify time from the homepage HTML. A manual override would let users misclassify a site (e.g. mark a generic blog as mkdocs-wiki), which then breaks the sitemap builder. The chip on each Quick Add row is a hint, not a setting.

Resource type differences

The six resource types are not interchangeable — each one drives a different sitemap-extraction strategy, a different cache TTL, and a different at-query-time fetch path. Pick the right type or, equivalently, pick a URL whose homepage will trigger the right detector.

Type Detection signal Sitemap source Build time Default TTL
mkdocs-wiki <meta name="generator" content="mkdocs/material"> or <!-- Book generated using mdBook --> or class="mdbook" /sitemap.xml (urlset or sitemapindex) → fall back to mkdocs.yml → fall back to rendered nav harvest ~5s 7 days
gitbook host contains gitbook.io, application-name=gitbook, name="generator" content="gitbook", static-2v.gitbook.com, or data-rsc-router /sitemap.xml → fall back to a single Tier-2 Playwright nav harvest ~10s 7 days
github-repo host is github.com or raw.githubusercontent.com (and not a CVE repo) GitHub Trees API (GET /repos/{owner}/{repo}/git/trees/{branch}?recursive=1), filtered to .md, .txt, .rst files ~3s 7 days
cve-poc-db GitHub repo whose name contains cve OR a homepage with >20 CVE-IDs Just {owner, repo, branch} — per-CVE lookups are deterministic by ID, so no tree enumeration ~1s 30 days
sphinx-docs host ends in .readthedocs.io, or _static/searchindex.js, or name="generator" content="docusaurus", or docusaurus.config searchindex.json (Sphinx) / search-index.json (Docusaurus) parsed for docnames + titles ~3s 14 days
agentic-crawl none of the above matched Bounded LLM-driven Playwright loop (max 30 pages, 20 LLM calls, 180s wall-clock, depth 3) 90-180s 1 day

What each type means in practice

  • mkdocs-wiki — for MkDocs / Material / mdBook wikis. They publish a complete sitemap.xml, so the build is fast and the sitemap is exhaustive. HackTricks, mdBook-rendered books, and Material-themed docs land here. Multi-language wikis are auto-filtered to English when more than 40% of paths cluster under language codes.
  • gitbook — for GitBook-rendered books, including custom domains. They also publish sitemap.xml, but some custom GitBook deployments do not, so a Tier-2 Playwright nav harvest is the documented fallback. ired.team and Practical CTF are typical examples.
  • github-repo — for markdown-based knowledge bases hosted on GitHub (PayloadsAllTheThings, awesome-* lists, OWASP guides). The sitemap is the recursive Git tree, filtered to text formats (.md, .txt, .rst). Big repos may be marked truncated by GitHub — the resource is then saved with an explicit _error field. Anonymous GitHub API is rate-limited to 60 req/h, so adding a GitHub token in API Keys is recommended; the per-resource token override is the per-repo escape hatch.
  • cve-poc-db — for CVE-indexed PoC repos (trickest/cve, 0xMarcio/cve, nomi-sec/PoC-in-GitHub). The repo has hundreds of thousands of files, so enumerating the tree is wasteful. Instead, the lookup path is built deterministically from the CVE-ID: contents/{year}/CVE-YYYY-NNNNN.md. The agent must pass cve_id="CVE-YYYY-NNNNN"; the tool docstring tells the agent so explicitly. Falls back to listing /contents/{year} and substring-matching on miss.
  • sphinx-docs — for Sphinx, Read the Docs, and Docusaurus sites. They ship a structured searchindex.json with docnames[] and titles[], which is the perfect shape for a sitemap. Tool documentation (Scapy, Volatility 3, Mitmproxy, Sliver C2) is the canonical use case. Cache TTL is longer (14 days) because tool docs change rarely.
  • agentic-crawl — the fallback for anything that did not match the five deterministic detectors: personal blogs, custom CMS, vendor research portals without a published sitemap. A bounded LLM loop drives Playwright over the site, asking Claude on each page which links to follow next. This is the only type that pays a real LLM cost at verify time (typically $0.30 to $0.60 with Sonnet) and the only type that blocks for ~90-180 seconds on add. Once verified, the sitemap is just JSON in the database and query-time stays sub-second.

A site can change type on Refresh. Detection runs every time. If a wiki migrates from MkDocs to Docusaurus, hitting Refresh on the card swaps the badge from mkdocs-wiki to sphinx-docs and rebuilds the sitemap with the right strategy.

What the agent sees

When you start (or reload) a project, the agent reads your enabled resources and dynamically composes the description for the tradecraft_lookup tool. Each enabled resource appears in the docstring as one block:

hacktricks   (mkdocs-wiki) https://book.hacktricks.wiki
  Comprehensive offensive security wiki. Covers web (XSS, SSRF,
  SSTI, deserialization), Active Directory (Kerberoasting, DCSync,
  golden ticket, ADCS), Linux/Windows privesc, cloud, container
  escapes... [your saved 250-350 word summary]

The whole "which resource fits this query" decision is made by the model reading these summaries. There is no vector router and no learned retrieval. The summary you saved at add-time is the routing intelligence — write good summaries (or trust the LLM-generated default) and the agent will pick the right resource on its own.

When zero resources are enabled, the entry is removed from the tool registry entirely, so the agent does not see a tool that promises a capability it cannot deliver.

Tunables (per-project)

The agentic-crawl loop and the cache layer expose four knobs in the project's Project Settings under the agent block (TRADECRAFT_*):

Setting Default What it caps
TRADECRAFT_CRAWL_MAX_PAGES 30 Pages visited by the agentic-crawl loop
TRADECRAFT_CRAWL_MAX_LLM_CALLS 20 "Which links to follow?" Claude calls per crawl
TRADECRAFT_CRAWL_TIME_BUDGET_SEC 180 Wall-clock budget per crawl
TRADECRAFT_CRAWL_MAX_DEPTH 3 Max link depth from the homepage

Plus three runtime knobs:

Setting Default Effect
TRADECRAFT_TOOL_ENABLED true Master kill-switch for the tool
TRADECRAFT_FETCH_TIMEOUT 30 HTTP timeout (seconds) for Tier 1 / Tier 2 fetches
TRADECRAFT_TIER2_THRESHOLD_BYTES 800 Tier-1 response size below which the tool escalates to Playwright
TRADECRAFT_DEFAULT_TTL_SEC 86400 Fallback cache TTL when both type-default and per-resource override are zero
TRADECRAFT_SECTION_PICKER_MODEL claude-haiku-4-5-20251001 Small model used for the at-query-time "which page best answers this?" decision

Clone this wiki locally