free forever — it talks to chat.deepseek.com, not to your wallet

Terminal coding agent · powered by DeepSeek web

A free Claude Code & Codex alternative for your terminal

A free, terminal-native alternative to Claude Code — written in Rust. Parallel chats, background sub-agents, an iterative GOAL loop, an offline semantic layer over your skills, tools and history, and a local OpenAI-compatible server. No API key. No subscription. No fluff.

Prebuilt for Windows, macOS and Linuxall builds & checksums

PoopRusteek 🧻 — ~/dev/that-one-project
deepseek · deepseek-chat [GOAL:tests] chats:3 agents:1 mcp:2/3| streaming

── installation

One file on Windows. One line everywhere else.

Prebuilt for five targets, an installer that never asks for admin rights, and a shell script that checks SHA-256 before it puts anything on your PATH.

pooprusteek-setup.exe
  1. 1.Run pooprusteek-setup.exe. It installs per user into %LOCALAPPDATA%\Programs, so Windows never asks for admin rights.
  2. 2.One screen: pick the folder, press Install. It adds pooprusteek to your PATH and a Start-menu shortcut that opens in Windows Terminal.
  3. 3.Uninstalling is an entry in Apps — and it asks whether your settings and sessions should go too.

! The installer isn’t code-signed yet, so SmartScreen may warn on first run: More info → Run anyway. Every file’s SHA-256 ships with the release if you’d rather trust math than a vendor.

without the wizard

Pull the installer from PowerShell and run it — same file, no browser involved.

Or skip installing altogether: the portable archive carries the same binary — pooprusteek-windows-x86_64.zip · arm64

It updates itself: /update · /autoupdate on

All builds, checksums and channels · dev

── capabilities

Small binary. Senior engineer.

«Работает как старший инженер: автономно, хирургически, без воды.» — the system prompt, and it means it.

/new · /chats

Parallel conversations

Every chat owns its own forked session and agent task. Background turns keep streaming while you type somewhere else — nothing ever collides.

/agent · task

Sub-agents

Spawn isolated workers — foreground for a clean answer, background for fire-and-forget. Only the conclusion comes back, not the noise.

/goal

GOAL loop

A worker writes, an evaluator judges. The loop iterates on concrete feedback until the goal passes, and swaps sessions to escape a dead end.

/rag · /search

Local RAG

Multilingual embeddings and keyword search over your skills, MCP tools and every past conversation. Your CPU, offline, after one 120 MB download.

/mcp

MCP, with OAuth

stdio, HTTP and SSE servers, auto-discovered from eight config sources. Full RFC OAuth, with tokens in the OS keyring instead of a plaintext file.

/skills

Markdown skills

Reusable instruction sets found across a dozen agent directories. Pin one by hand, or let the matcher offer it the moment it applies.

/providers · /models

Bring any model

DeepSeek web by default; OpenAI-compatible, Anthropic and Gemini endpoints alongside it. Switch from a panel, pick models from the live list.

/serve

Local API gateway

One command turns the agent into an OpenAI-compatible server on 127.0.0.1. Every tool that speaks that dialect inherits the free backend.

edit · write · /undo

Surgical edits

Anchored replacements with a real diff preview, not sed. Every write is checkpointed first, so /undo puts the file back the way it was.

bash · /jobs · /ps

Real shell, real PTY

Foreground, background and interactive PTY processes. Dev servers survive turns on an idle TTL; /jobs and /ps list and kill them.

/whitelist

Approvals with a scope

Allow cargo test, not all of bash. A rule is a tool plus a scope — and a compound command gets none, because it only looks like its first word.

/update · /themes

Yours to keep

Self-update on two channels, verified against the release manifest. Ten built-in palettes, plus a wizard for one of your own.

monthly bill

$0.00

Not a trial. Not a free tier with a token ration. PoopRusteek drives the same web chat you already use for free — it just does it from your terminal, with tools.

pow sha3(nonce=48213) → 0003dc90b solved locally

auth
your own chat.deepseek.com session — cookie + userToken, stored in the OS keyring, encrypted at rest
proof-of-work
the SHA-3 challenge DeepSeek uses to gate its web API is solved locally, on your CPU
api key
none. there is nothing to leak, rotate, or top up
telemetry
none. your code goes to the model you chose and nowhere else

── /goal mode

It doesn’t stop when it sounds done. It stops when it is.

Two agents, one loop: a worker does the job, an evaluator refuses to be impressed. You watch the status bar.

[GOAL ON]

worker + evaluator armed, waiting for a goal

── local rag

It finds its own skills, tools and memories.

A semantic layer that never leaves your machine: multilingual embeddings and stemmed keyword search, fused, over three corpora. One 120 MB model downloads once — after that nothing goes out.

every prompt, before it is sent

prompthow do I ship a release?
densee5-small · ONNX · 384-dim · quantized
lexicalSnowball TF-IDF · ru + en stems
fusionreciprocal rank fusion
hintskill: releasing (0.93) → loaded on demand

Cross-language by construction: a Russian prompt matches an English skill description, and the other way round.

skills

Every outgoing prompt is matched against the whole catalog; the top hits ride along as an ephemeral hint. The model discovers what it can do instead of you enabling it by hand.

mcp tools

With thirty tools connected the prompt carries one line per server. Full schemas arrive only when a tool matches — or when the model asks for them with tool_search.

history

Every saved session is chunked, embedded and kept. Search it yourself with /search, or let the agent recall the fix it already wrote via history_search.

0.927

MRR over the skill catalog, from the repo’s own eval harness

0.836

MRR over MCP tool descriptions

120 MB

downloaded once — e5-small, quantized ONNX

0

bytes over the network after that

How the retrieval works

── the surface area ──

50 slash commands. Zero menus.

Everything is a command, exactly where your hands already are.

Every one of them is a file in src/commands/defs/, and the help screen is generated from the same registry. /architecture →

── /serve

Your free backend, on localhost.

One command turns the agent into an OpenAI-compatible server. Anything that speaks that dialect — aider, Continue, Open WebUI, the OpenAI SDKs — points at 127.0.0.1:7667 and inherits the same free session.

127.0.0.1:7667 · openai dialect
 /serve on
API server listening on http://127.0.0.1:7667/v1

$ curl http://127.0.0.1:7667/v1/chat/completions \
    -H 'content-type: application/json' \
    -d '{"model":"deepseek-chat","stream":true,
       "messages":[{"role":"user","content":"hi"}]}'

data: {"choices":[{"delta":{"content":"Hi"}…
                                    $0.00

one dialect, every backend

Model ids route to the built-in DeepSeek client or to any /providers entry: deepseek-chat, lmstudio/qwen2.5-coder, gemini/…

stateless per request

Every completion runs on a fresh fork, and DeepSeek forks drop their remote session afterwards — server traffic never piles junk chats onto your account.

loopback by default

127.0.0.1 unless you say otherwise. Set a bearer token and CORS turns on with it, not before.

No interface needed: /serve →

── /themes

Ten palettes. This page wears them too.

The gallery below is the agent’s real preset table from src/tui/theme.rs. Click one: it is what the TUI looks like, and it is what this site looks like — both are built on the same color roles.

Your own is a wizard away: /themes new takes a base preset plus per-role overrides and lands as a [[ui.custom_themes]] entry in config.toml.

1

static binary — no node, no electron, no runtime

62k

lines of Rust on tokio + ratatui

0

garbage-collector pauses while you type

5

prebuilt targets: Windows, Linux and macOS

Rust edition 2024 · MSRV 1.91 · ~900 tests on Windows, Linux and macOS · one tokio::select! loop, everything else is an event

deepseek · deepseek-chatctx:0% · | [streaming]