1. Command Execution & File System

NameRisk LevelDetails / HazardsMeasures for Risk Reduction
Executing arbitrary terminal commands Highest An agent (or the Terminal panel itself) can run any command your OS user can - install/remove software, change system settings, exfiltrate data, or destroy files - with the same permissions you're logged in with. Review commands before they run rather than looking away; avoid running Roject under an admin/root account; keep high-value credentials (cloud CLI tokens, deploy keys) out of reach where possible; use a disposable/sandboxed environment (VM, container, separate user account) for higher-risk work.
Reading, writing, or deleting files Highest An agent with file access can overwrite or delete anything in the project it can reach - including files it wasn't asked to touch - and can read sensitive files (credentials, keys, personal data) sitting in that folder. Keep the project under version control and commit before large changes; don't store secrets/credentials inside a project folder a Rojo operates in; scope the project directory to only what's needed.
Destructive git operations High An agent asked to "clean up" or "fix" a repository can run force-pushes, hard resets, or history rewrites that discard uncommitted or even already-pushed work. Ask an agent to explain a destructive git operation before running it; keep independent backups/remotes; avoid granting force-push access to shared or production branches.
Credential & secret exposure High Secrets can leak via terminal output, shell history, log files, or an agent quoting them back into generated text, commit messages, or chat history. Use a proper secret manager instead of plaintext files in the project; rotate any credential that may have been exposed; review generated output (commit messages, docs) for accidental inclusion before it's shared or committed.

2. AI Agent Behavior

NameRisk LevelDetails / HazardsMeasures for Risk Reduction
Prompt injection via untrusted text High Any text an agent reads - a file, a web page, a tool's output, even a filename - can contain instructions disguised as content. An agent that treats file content as trustworthy may follow hidden instructions instead of yours. Treat text pulled from outside your own direct input as potentially adversarial, especially in unfamiliar projects; review what an agent read immediately before it takes an unexpected action; don't have agents process untrusted external content unsupervised.
Hazard sessions (a session gone wrong) High A session can be badly initialized or take a strange turn partway through: acting overconfident, making repeated errors, ignoring your instructions, failing to use tools or context correctly, or otherwise behaving unlike its normal pattern. Restart the session immediately once you notice this pattern, rather than continuing it or trying to talk it back on track; don't approve actions from a session already showing these signs.
Runaway loops & resource/cost use Medium A stuck or misbehaving session can loop, retry excessively, or keep making tool calls - consuming local resources and, for metered third-party AI providers, real money. Watch active sessions periodically rather than leaving them fully unattended for long stretches; restart hazard sessions immediately (see above); check your provider's usage/billing if you use a metered API key.
Untested instructable components Medium Components, workflows, or configurations shipped with Roject that expose instructable/actionable content to agents or LLMs (prompt templates, tool configs, workspace actions) are blueprints, not verified-safe defaults - they haven't been adversarially tested. Read and understand any such component before relying on it; don't grant it broad access until you've reviewed what it actually does.

3. Network & Exposure

NameRisk LevelDetails / HazardsMeasures for Risk Reduction
Opening ports / firewall exceptions High Features like the Static Server panel, the video call panel, or the experimental tunnel.rokojori.com service open network ports or ask for firewall exceptions to work, which can expose a local service beyond what you intended - to your whole LAN, or in some configurations, the internet. Only open the minimum needed; close/stop servers and revoke firewall rules when you're done; avoid running exposed services on networks you don't control (public Wi-Fi).
Directory listing exposure Medium The Static Server panel's directory listing serves every file under the chosen root to anyone who can reach the port, including files you didn't mean to publish. Point it only at directories you're comfortable exposing entirely; turn off directory listing if you don't need it; stop the server when you're not actively using it.
Experimental remote access (tunnel.rokojori.com) High This experimental, invite-only feature lets a locally hosted model be reached remotely, which by design exposes a local capability outside your machine. Only enable this if you understand what it exposes; treat it as experimental and not yet hardened for general use, per its invite-only status.
Video call IP exposure Low Direct (non-relay) WebRTC calls can reveal your IP address to the person you're calling. Use the Force Relay option in the video call panel's settings if you don't want to share your direct IP with a call peer.

4. Processes & Sessions

NameRisk LevelDetails / HazardsMeasures for Risk Reduction
Orphaned processes Medium Terminal sessions, static servers, spawned agent subprocesses, or tools an agent launched can keep running after the panel, session, or even the app itself closes - continuing to hold ports, use resources, or in rare cases keep acting. This can originate from Roject itself or from an agent. Periodically check your system's process/task list for anything Roject-related that should have stopped; manually end anything left running.
Unresponsive or crashed agents Medium The programs behind a Rojo (a local model process, a spawned CLI, a remote API connection) are external software and can crash, hang, or stop responding to Roject's own instructions - including its attempts to stop them. Even closing the panel or the whole app is not guaranteed to stop an already-misbehaving external process. If closing the panel/app doesn't stop something, check your system's process list directly and end it manually; treat a consistently unresponsive Rojo as a sign to restart the underlying provider/process, not just the chat session.

5. Third-Party Services & Data

NameRisk LevelDetails / HazardsMeasures for Risk Reduction
Data sent to third-party AI providers Medium Whatever an agent reads to do its job - prompts, file contents, project structure - is sent to whatever model/provider you've configured (your own API key, a local model, or a local CLI), under that provider's own data handling terms. Don't point a Rojo at projects containing data you're not willing to send to your configured provider; review that provider's own data/privacy terms; use a local model to keep data off third-party servers entirely.
Third-party tool behavior & availability Low Third-party AI providers/models can change behavior, pricing, or availability at any time, and bundled tools (like the Claude Code CLI) can self-update in ways that occasionally leave them in a broken state. Keep track of which provider/model a project depends on; if a Rojo suddenly behaves very differently or stops working, check whether the underlying provider or tool changed before assuming your project changed.

Disclaimer

This page does not describe every possible risk, and following the measures above does not eliminate risk - it reduces it. You are responsible for evaluating whether a given risk is acceptable for your own situation, data, and systems, and for deciding whether you understand a risk well enough to take it. When something above is unclear, or you're not sure whether a specific action is safe, the safer choice is not to take it until you are sure.

← Back to Roject