* feat(llm): add native Novita AI provider via OpenAI-compatible endpoint Wire Novita AI (https://api.novita.ai/openai/v1) as a first-class LLM provider, following the same pattern used for DeepSeek/HuggingFace/NanoGPT: dispatched through the existing OpenAIAdapter, resolved via NOVITA_API_KEY, with a default model, model catalog entries, config/setup wiring, and regression tests. * fixup(llm): use deepseek/deepseek-v4-flash-0731 as the second Novita model Swap the curated Novita model catalog's second entry from qwen/qwen3-coder-30b-a3b-instruct to deepseek/deepseek-v4-flash-0731 per requested model selection. Verified live against api.novita.ai/openai/v1/models. * fixup(llm): replace superseded DeepSeek Flash id with current Pro flagship QA flagged that deepseek/deepseek-v4-flash-0731 has been superseded in the live Novita catalog; deepseek/deepseek-v4-pro-0813 is now the current serving DeepSeek flagship. Swap the second Novita model catalog entry accordingly. --------- Co-authored-by: jax-novita <jax-novita@users.noreply.github.com> Co-authored-by: Joseph Magly <1159087+jmagly@users.noreply.github.com>
172 lines
4.8 KiB
Markdown
172 lines
4.8 KiB
Markdown
---
|
|
title: "Getting Started"
|
|
summary: "Install, configure, launch, and run the first safe T3MP3ST workflow."
|
|
description: "Install, configure, launch, and run the first safe T3MP3ST workflow."
|
|
audience: ["operator"]
|
|
category: "operator"
|
|
status: "current"
|
|
source: "T3MP3ST repository"
|
|
sourcePath: "docs/GETTING_STARTED.md"
|
|
updated: "2026-07-20"
|
|
---
|
|
# Getting Started With T3MP3ST
|
|
|
|
T3MP3ST is a local offensive-security command center for authorized testing. It gives an AI coding agent or LLM-backed operator a UI, API, evidence store, mission model, and tool arsenal. Use it only on systems you own or have explicit written permission to test.
|
|
|
|
## Requirements
|
|
|
|
- Node.js 22.19 or newer
|
|
- npm
|
|
- git, if you want to update from upstream or contribute
|
|
- Optional local model runtime: Ollama, LM Studio, vLLM, or another OpenAI-compatible local server
|
|
- Optional security tools for deeper arsenal coverage; see [Arsenal Activation Plan](#arsenal-activation-plan)
|
|
|
|
## Install
|
|
|
|
From a clone:
|
|
|
|
```bash
|
|
git clone https://github.com/elder-plinius/T3MP3ST.git
|
|
cd T3MP3ST
|
|
npm install
|
|
```
|
|
|
|
From an existing checkout:
|
|
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
## Configure A Model
|
|
|
|
You can run with a hosted provider key or a local model.
|
|
|
|
Interactive setup:
|
|
|
|
```bash
|
|
npm run setup
|
|
```
|
|
|
|
Hosted provider environment variables are supported:
|
|
|
|
```bash
|
|
export OPENROUTER_API_KEY=...
|
|
export VENICE_API_KEY=...
|
|
export ANTHROPIC_API_KEY=...
|
|
export OPENAI_API_KEY=...
|
|
export DEEPSEEK_API_KEY=...
|
|
export NOVITA_API_KEY=... # third-party hosted OpenAI-compatible API
|
|
export LITELLM_BASE_URL=http://localhost:4000/v1
|
|
export LITELLM_API_KEY=... # only if your LiteLLM proxy requires one
|
|
```
|
|
|
|
Hosted providers receive the model id, prompts/context, generated output, and
|
|
request metadata needed to serve the request. For Novita, review the current
|
|
[privacy policy](https://novita.ai/legal/privacy-policy) and
|
|
[terms](https://novita.ai/legal/terms-of-service) before sending sensitive
|
|
target data; T3MP3ST does not independently certify it for sensitive workloads.
|
|
|
|
Local/offline example with Ollama:
|
|
|
|
```bash
|
|
ollama serve
|
|
ollama pull llama3
|
|
export TEMPEST_LOCAL_BASE_URL=http://localhost:11434/api
|
|
export TEMPEST_LOCAL_MODEL=llama3
|
|
export TEMPEST_LOCAL_API_KEY=... # only if your local server requires one
|
|
```
|
|
|
|
Check current configuration:
|
|
|
|
```bash
|
|
npx t3mp3st status
|
|
npx t3mp3st models
|
|
npx t3mp3st test
|
|
```
|
|
|
|
## Start The War Room
|
|
|
|
```bash
|
|
npm run server
|
|
```
|
|
|
|
Open:
|
|
|
|
```text
|
|
http://127.0.0.1:3333/ui/
|
|
```
|
|
|
|
The server binds to `127.0.0.1` by default. Do not expose it to a network unless you understand the command-execution and browser-origin risk. If you intentionally bind elsewhere with `T3MP3ST_HOST`, put it behind your own access control.
|
|
|
|
If you need outbound test traffic to use a SOCKS5 proxy, configure it with `TEMPEST_PROXY_URL` or through the War Room settings. The expected form is:
|
|
|
|
```bash
|
|
export TEMPEST_PROXY_URL=socks5://127.0.0.1:9050
|
|
```
|
|
|
|
## First Safe Run
|
|
|
|
Use a target you control, a local lab, or a CTF service.
|
|
|
|
1. Open the War Room.
|
|
2. Run the preflight view and confirm the API is healthy.
|
|
3. Sync or inspect arsenal status so missing tools are visible.
|
|
4. Define the target and rules of engagement before any active probing.
|
|
5. Start with a passive or local-safe plan.
|
|
6. Approve only the active or networked operations that are inside scope.
|
|
7. Save evidence before promoting a finding.
|
|
8. Retest before reporting.
|
|
|
|
If you are only evaluating the app, use the built-in safe checks:
|
|
|
|
```bash
|
|
npm run doctor
|
|
npm run field:drill
|
|
npm run arsenal:smoke
|
|
npm run prompt:audit
|
|
```
|
|
|
|
## CLI Basics
|
|
|
|
```bash
|
|
npx t3mp3st # interactive mode
|
|
npx t3mp3st setup # setup wizard
|
|
npx t3mp3st status # config status
|
|
npx t3mp3st models # available models for the selected provider
|
|
npx t3mp3st test # test the selected LLM connection
|
|
```
|
|
|
|
The interactive CLI can start an operation, spawn operators, add targets, create missions, chat with the configured model, and generate a report from collected findings.
|
|
|
|
## Updating
|
|
|
|
Preview an update:
|
|
|
|
```bash
|
|
npm run update:dry
|
|
```
|
|
|
|
Interactive update from upstream:
|
|
|
|
```bash
|
|
npm run update
|
|
```
|
|
|
|
Hard reset to upstream is opt-in:
|
|
|
|
```bash
|
|
npm run update:hard
|
|
```
|
|
|
|
The updater protects local secrets and run artifacts listed in `scripts/update-protected.txt`.
|
|
|
|
## Common Problems
|
|
|
|
| Symptom | Check |
|
|
|---|---|
|
|
| UI does not load | Confirm `npm run server` is still running and open `http://127.0.0.1:3333/ui/` |
|
|
| LLM calls fail | Run `npx t3mp3st status` and `npx t3mp3st test`; check provider key or local model URL |
|
|
| Arsenal tools show missing | Install the relevant tools from [Arsenal Activation Plan](#arsenal-activation-plan) |
|
|
| Active tool call is refused | Confirm the target is authorized and inside the active scope receipt |
|
|
| Update wants to change local files | Run `npm run update:dry` first and inspect the plan |
|