Att installera DeepSeek Harness tar ett kommando. Trettio sekunder senare stirrar du på ett vackert, helt tomt gränssnitt på http://127.0.0.1:3080, och ingen har sagt vad du ska göra härnäst.
README-filen är notoriskt tunn. Cordis-artikeln som den länkar till handlar om spatiotemporalt komponerbarhet. Du ville bara att den skulle läsa din kod.
Den här guiden börjar vid den tomma skärmen. Du får installationskommandot, ja, men den del som faktiskt kostar dig en eftermiddag är att koppla in en modellleverantör, och det finns tre standardvärden i det steget som tyst bryter DeepSeek-modeller och slänger 75 % av ditt kontextfönster. Nästan ingen dokumenterar dem.
Viktiga slutsatser
npx @deepseek-ai/dsh webär hela installationen. Node.js^22.19.0eller>=24.0.0är det enda förkravet.- DeepSeek Harness är en sele, inte en modell. Den levereras utan några referenser, så den gör ingenting förrän du kopplar på en leverantör.
- Alla OpenAI-kompatibla slutpunkter fungerar, inklusive DeepSeek's eget API, en gateway eller en lokal Ollama-server.
- När du lägger till en anpassad leverantör gissar selen tänkandets dialekt från din bas-URL. Gissa fel och
reasoning_contentgår sönder. - Handdeklarerade modeller använder som standard ett kontextfönster på 262 144, så V4:s fulla fönster på 1 048 576 förblir avstängt tills du anger annat.

Terminal som visar gröna godkända test bredvid en glödande modulär selen, som illustrerar hur man installerar DeepSeek Harness
60-sekundersversionen av vad du bygger
Här är belöningen innan någon teori. Tre filer i en tom mapp, en inklistrad prompt, och agenten läser koden, kör pytest, ser två test misslyckas, ändrar en enda tecken och kör om tills sviten är grön.

DeepSeek Harness läser fizzbuzz.py, kör pytest, fixar off-by-one-buggen och kör om till 3 godkända
Hela loopen: läs, kör, diagnostisera, patch, kör om. Varje steg hamnar i en append-only-sessionslogg som du kan spela upp senare.
Det är demon vi ska bygga tillsammans i steg 6. Den är medvetet tillräckligt liten för att återskapas i en arbetskatalog, och den är inte beroende av något externt arkiv som kan ändras nästa vecka.
Varför de flesta försök att installera DeepSeek Harness fastnar i steg två
Installationen är verkligen trivial. Fastningen sker omedelbart efteråt, och det är ett designbeslut snarare än en bugg: DeepSeek Harness levereras utan nycklar, ingen standardleverantör och ingen medföljande modell.
DeepSeek släppte projektet med öppen källkod den 13 augusti 2026 under MIT-licensen, och det exploderade. Från och med den 17 augusti 2026 har arkivet 144 361 stjärnor och 14 689 forks (GitHub, augusti 2026), vilket är många människor som kommer till samma tomma skärm samma vecka.
Hacker News-tråden från lanseringsveckan fångar den delade reaktionen. Folk älskar transparensen: allt modellen ser registreras i en append-only-sessionslogg, och en kommentator noterade att "US-modeller låter dig inte se det." Klagomålen är lika konsekventa. "README-filen är ganska tunn utanför installationsinstruktionerna," skrev en utvecklare, och Cordis-artikeln fick omdömet att den låter som "ordsoppa" (Hacker News, augusti 2026).
Så de fyra sakerna som faktiskt blockerar människor är alla efter installationen:
- Node är för gammal, så
npxmisslyckas innan något startar. - Port 3080 är redan upptagen av en annan utvecklingsserver.
- Den anpassade leverantören returnerar 401, eller modellistan kommer tom tillbaka.
- Modellen ansluter men resonemangsutdata kommer förvrängd, eller långa filer spränger kontextfönstret i förtid.
Steg 1 till 5 nedan är riktade rakt mot dessa fyra.
Innan du installerar DeepSeek Harness: Välj en modell och en nyckel
Svara först: selen i sig är gratis och lokal, men den kommer inte att göra en enda användbar sak förrän du ger den en OpenAI-kompatibel bas-URL, en nyckel och minst ett modell-ID. Bestäm detta innan du installerar så tar hela installationen tio minuter.
Allt händer i en webbläsarflik på 127.0.0.1:3080. Du väljer mellan tre vägar, och alla tre fungerar.
Tabell B: modellåtkomstalternativ som fungerar med DeepSeek Harness idag
| Väg | Bas-URL | Pris per 1M tokens | Kontext | Betalning | Bäst för |
|---|---|---|---|---|---|
| DeepSeek officiellt API | https://api.deepseek.com | V4-Flash $0,22 in / $0,66 ut lägtrafik, $0,44 / $1,32 högtrafik. Cacheträffar från $0,007 | 1M | Varierar per region | Förstapartsbeteende, mycket billiga cacheträffar |
| OpenAI-kompatibel gateway (exempel: Atlas Cloud) | https://api.atlascloud.ai/v1 | V4-Flash $0,14 in / $0,28 ut. V4-Pro $1,68 / $3,38 | 1 048 576 | Kort, ingen minsta summa | Fastpris utan högtrafikstillägg |
| Lokal Ollama | http://localhost:11434/v1 | Ingen tokenkostnad | Modellberoende | Inget | Privat kod, offline-arbete |
Två saker värda att veta innan du väljer. DeepSeeks förstaparts-API gick över till debitering med högtrafik och lågtrafik, där högtrafik är 01:00–04:00 och 06:00–10:00 UTC och lågtrafik är exakt hälften av högtrafik (DeepSeek API Docs, augusti 2026). Dess cache-träff-inputprissättning är extremt låg, så en arbetsbelastning som läser samma kontext upprepade gånger kan vara mycket billig i förstapart.
En gateway byter ut det mot förutsägbarhet. Atlas Cloud serverar samma DeepSeek-modeller till ett fast pris utan högtrafikstillägg och utan prenumeration, vilket är exemplet jag kommer att använda i installationen nedan eftersom det inte kräver någon regional betalningsmetod. Byt ut mot den väg som passar din situation; konfigurationsformen är identisk för alla.
Hur man installerar DeepSeek Harness, steg för steg
Det finns tre sätt att komma in. Välj en rad och följ stegen.
Tabell A: installationsmetoder jämförda
| Metod | Tid | Behöver | Uppgraderingar | Bäst för |
|---|---|---|---|---|
| npx | Under en minut | Node 22.19+ eller 24+ | Kör npx igen | Nästan alla |
| Från källkod | 5 till 10 minuter | Node, pnpm, git | git pull och bygg om | Bidragsgivare, plugin-författare |
| Skrivbordsbygge | Cirka en minut | Ingenting | Installera om | Den som vill undvika Node-installation |
Steg 1: Kontrollera dina förkrav innan du installerar DeepSeek Harness
Det vanligaste felet är en Node-version som ser tillräckligt ny ut men inte är det. Arkivet kräver ^22.19.0 || >=24.0.0. Ingenting på 23.x-linjen kvalificerar sig på någon patch-nivå.
bash1node -v # måste vara >= 22.19.0 på 22.x, eller >= 24.0.0 2npm -v 3
Om node -v skriver ut 22.14 eller 20.x, uppgradera innan du går vidare. Du behöver bara pnpm om du planerar att bygga från källkod eller skriva plugins:
bash1npm install -g pnpm 2
Steg 2: Installera DeepSeek Harness med ett kommando
Detta är hela installationen. Den laddar ner och startar webbprofilen i ett svep.
bash1npx @deepseek-ai/dsh web 2
Öppna http://127.0.0.1:3080. Om den porten redan är upptagen, skickar startprogrammet vidare alla flaggor det inte känner igen direkt till profilen, så du kan flytta den:
bash1npx @deepseek-ai/dsh web --port 8080 2
Vad du får är ett tomt skal. Ingen leverantör, ingen modell, ingen nyckel. Det är förväntat, och det är här de flesta guider slutar.

DeepSeek Harness webbgränssnitt på 127.0.0.1:3080 omedelbart efter installation, utan leverantör eller modell konfigurerad
Installation klar och helt inaktiv. Allt från här är ledningsdragning.
Steg 3: Skaffa en API-nyckel för DeepSeek Harness
Oavsett vilken väg du valde från Tabell B behöver du en nyckel och en bas-URL. För förstapartsvägen, registrera dig på platform.deepseek.com och skapa en nyckel där. Faktureringsalternativen varierar per region, så kontrollera att din betalningsmetod stöds innan du bestämmer dig.
För gateway-vägen som används i denna genomgång, skapa en nyckel i Atlas Cloud dashboard under API Keys, exportera den sedan så att selen kan läsa den utan att lagra den i en inställningsfil:
bash1export ATLASCLOUD_API_KEY="sk-your-key-here" 2

API-nyckelsidan på Atlas Cloud instrumentpanelen med en nyskapad nyckel, delvis maskerad
Kopiera nyckeln en gång. Den visas inte igen efter att du lämnat sidan.
Steg 4: Lägg till din modellleverantör till DeepSeek Harness
I gränssnittet, gå till Inställningar, sedan Modeller, och sedan Lägg till en anpassad leverantör. Formuläret behöver ett leverantörs-ID, ett visningsnamn, en bas-URL, ett API-protokoll, en autentiseringsuppgift och minst en modell.
En varning som dokumentationen har rätt att upprepa: Leverantörs-ID är permanent. Det skrivs in i förfrågningar, sparade sessioner, modellstandarder och referenser till autentiseringsuppgifter. Om du inte gillar det senare är din enda möjlighet att skapa en ny leverantör och ta bort den gamla.
| Fält | Vad du ska ange |
|---|---|
| Leverantörs-ID | atlas (gemener, permanent) |
| Visningsnamn | Atlas Cloud |
| Bas-URL | https://api.atlascloud.ai/v1 |
| API-protokoll | openai-completions |
| API-nyckel | Din nyckel |
| Modeller | Klicka på Hämta tillgängliga modeller, eller skriv deepseek-ai/deepseek-v4-flash för hand |
Om hämtning av modeller returnerar 401 är nyckeln fel. Om den returnerar en tom lista visar slutpunkten helt enkelt inte ett modellindex, vilket är ofarligt: skriv modell-ID för hand och gå vidare.

Ifyllt formulär för att lägga till anpassad leverantör, med bas-URL, API-protokoll och Hämta modeller-kontrollen markerade
De tre fälten som avgör om nästa steg fungerar: bas-URL, protokoll och modellistan.
Steg 5: De tre DeepSeek Harness-standardvärdena som tyst bryter DeepSeek-modeller
Detta är den del som ingen annan installationsguide täcker, och det är anledningen till att din installation kan se ansluten ut men bete sig konstigt.
Selens LLM-lager härleder vilken tänkande dialekt som ska talas från din slutpunkts-URL. De interna dokumenten är tydliga med konsekvensen: "pi-ai gissar från slutpunkts-URL:n; en privat gateways URL säger ingenting, så en DeepSeek-dialekt-gateway skulle talas till i OpenAI-dialekt utan möjlighet att korrigera det." I klartext: alla bas-URL:er som inte uppenbart är DeepSeek behandlas som OpenAI, och DeepSeeks reasoning_content-hantering går fel.
Den andra och tredje fällan är kapacitet. En modell som du deklarerar för hand faller tillbaka på defaultContextWindow på 262 144 och defaultMaxTokens på 32 768. V4 stöder 1 048 576 tokens kontext, så att acceptera standarden slänger tre fjärdedelar av det.
Skriv in dessa i din inställningsfil:
yaml1# $DSH_HOME/settings.yaml (standard ~/.dsh/settings.yaml) 2llm-pi-ai: 3 providers: 4 atlas: 5 displayName: Atlas Cloud 6 api: openai-completions 7 baseURL: https://api.atlascloud.ai/v1 8 apiKeyEnv: ATLASCLOUD_API_KEY 9 compat: 10 thinkingFormat: deepseek # 1. stoppa URL-baserad gissning 11 defaultContextWindow: 1048576 # 2. standard är endast 262144 12 defaultMaxTokens: 32768 # 3. höj för långa utdata-jobb 13 models: 14 - id: deepseek-ai/deepseek-v4-flash 15 contextWindow: 1048576 16 - id: deepseek-ai/deepseek-v4-pro 17 contextWindow: 1048576 18
Tre saker att komma ihåg. Inställningar löses modell först, sedan väg, sedan den installerade katalogposten, sedan den URL-härledda gissningen, så ett per-modell-värde vinner alltid. Båda compat-omkopplarna, thinkingFormat och supportsReasoningEffort, finns endast under openai-completions; sätt dem på ett annat protokoll och upplösningen misslyckas. Och denna adapter täcker medvetet inte Bedrock, Vertex, Azure eller Codex, vars autentiseringsflöden behöver mer än en nyckel, en slutpunkt och rubriker.
Steg 6: Kör din första riktiga uppgift i DeepSeek Harness
Nu demon från början av denna artikel. Skapa en tom mapp och lägg till tre filer.
fizzbuzz.py, med en off-by-one-bugg:
python1def fizzbuzz(n): 2 out = [] 3 for i in range(1, n): 4 if i % 15 == 0: 5 out.append("FizzBuzz") 6 elif i % 3 == 0: 7 out.append("Fizz") 8 elif i % 5 == 0: 9 out.append("Buzz") 10 else: 11 out.append(str(i)) 12 return out 13
test_fizzbuzz.py, där två av tre tester misslyckas:
python1from fizzbuzz import fizzbuzz 2 3def test_starts_correctly(): 4 assert fizzbuzz(5)[:3] == ["1", "2", "Fizz"] 5 6def test_covers_every_number(): 7 assert len(fizzbuzz(15)) == 15 8 9def test_fifteen_is_fizzbuzz(): 10 assert fizzbuzz(15)[-1] == "FizzBuzz" 11
Och requirements.txt:
text1pytest>=8.0 2
Att köra sviten för hand först är värt att göra, så du vet vad agenten går in i:
text1.FF [100%] 2=================================== FAILURES =================================== 3___________________________ test_covers_every_number ___________________________ 4E AssertionError: assert 14 == 15 5___________________________ test_fifteen_is_fizzbuzz ___________________________ 6E AssertionError: assert '14' == 'FizzBuzz' 7=========================== short test summary info ============================ 82 failed, 1 passed in 0.01s 9
Ställ in agentläget till Standard och modellen till deepseek-ai/deepseek-v4-flash, klistra sedan in denna prompt exakt:
Kör pytest i denna arbetsyta. Två tester misslyckas. Hitta grundorsaken i fizzbuzz.py, fixa den med minsta möjliga ändring, kör sedan pytest igen och visa mig det slutliga resultatet. Redigera inte testfilen.
Den korrekta fixen är ett tecken: range(1, n) blir range(1, n + 1), och sviten rapporterar 3 passed.
Nu den del som gör en sele annorlunda än ett chattfönster. Varje körning registreras i en append-only-sessionslogg, och du kan förgrena den. Gå tillbaka till punkten där agenten först läste fizzbuzz.py och förgrena ett andra försök:
Förgrena denna session från steget där du först läste fizzbuzz.py. Den här gången skriv om den som en dict-baserad uppslagning istället för att lappa if-grenen, kör sedan pytest igen.

Förgrening av en DeepSeek Harness-sessionslogg för att producera en andra, dict-baserad implementering från samma startpunkt
En startpunkt, två grenar. Detta är funktionen som lanseringsveckans publik faktiskt brydde sig om.
Steg 7: Gå huvudlös för skript och CI
Två profiler initierar sig själva vid första användning: web och headless. Du har använt web, och dsh web är bara ett alias för dsh --profile web.
Huvudlös kör en ny beständig session, skriver ut det slutliga svaret och avslutas, vilket är exakt den form en CI-uppgift vill ha:
bash1dsh --profile headless "Kör testerna och fixa eventuella fel. Rapportera diffen." 2
Alla andra profiler måste skapas via dsh plugin. Profiler finns i $DSH_HOME/profiles/<name>, som standard ~/.dsh/profiles/<name>.

Terminalutdata från en huvudlös DeepSeek Harness-körning som skriver ut det slutliga svaret och avslutas
Huvudlöst läge: en session, ett svar, avslutningskod du kan förgrena på.
Andra sätt att installera DeepSeek Harness
npx-vägen täcker de flesta. Dessa tre är värda att känna till.
Installera DeepSeek Harness från källkod med pnpm
Om du vill läsa koden, patcha den eller skriva plugins mot den:
bash1git clone https://github.com/deepseek-ai/deepseek-harness 2cd deepseek-harness 3pnpm install 4pnpm run build 5pnpm dsh web 6
Skrivbordsbygget på 5 MB
Ett community-projekt, hairyf/deepseek-harness-desktop, omsluter selen i Tauri och levererar en cirka 5 MB installationsprogram för Windows, macOS och Linux utan någon Node-installation alls. Det är inte en officiell DeepSeek-utgåva, så behandla den därefter: vid skrivande stund har den cirka 400 stjärnor och skapades en dag efter selen själv.
Kör DeepSeek Harness helt lokalt med Ollama
Ollama levererar en förstapartsintegration. Kortversionen är ett kommando:
bash1ollama launch dsh 2
Det installerar och kör selen med Ollama inkopplad, med inställningarna på ~/.ollama/launch/dsh/settings.yaml (Ollama Docs, augusti 2026). En varning värd att läsa innan du antar att allt är offline: den inbyggda webbsökningen är aktiverad automatiskt och behöver Ollama-molnåtkomst plus en modell som stöder verktyg. En genuint lokal modell ger dig noll tokenkostnad, till priset av hastighet och, vanligtvis, svagare verktygsanrop.

DeepSeek Harness ansluten till en lokal Ollama-server som kör samma misslyckade-test-uppgift
Samma uppgift, ingen nätverksresa, ingen per-token-räkning.
Är DeepSeek Harness gratis? Vad det faktiskt kostar att köra det
Svar först: programvaran är gratis och MIT-licensierad, även för kommersiellt bruk. Tokens är inte gratis, om du inte kör modeller lokalt. Ingenting med selen i sig är mätt, begränsat eller knutet till ett DeepSeek-konto.
Tabell C: vad som faktiskt är gratis och vad som inte är det
| Komponent | Gratis? | Anteckningar |
|---|---|---|
| Selen programvara | Ja | MIT-licensierad, inget konto krävs |
| Modelltokens via ett API | Nej | Debiteras per token av den som serverar modellen |
| Modelltokens via lokal Ollama | Ja | Du betalar i hårdvara och latens istället |
| Lång kontext | Beror på | Prissatt per token, så ett 1M-fönster kostar vad du fyller det med |
Ett räkneexempel, med runda siffror snarare än en specifik körning. Säg att en felsökningssession som steg 6 förbrukar 200 000 indatatokens och 20 000 utdatatokens, vilket är realistiskt när agenten har läst några filer och itererat. Till det fasta gateway-priset på $0,14 in och $0,28 ut kostar den sessionen cirka 3,4 cent. På förstaparts-API:et till lågtrafikpriser utan cacheträff är det cirka 5,7 cent, och under högtrafik cirka 11 cent. Om det mesta av din indata är cacheträffar blir förstapart dramatiskt billigare på indatasidan, eftersom cacheträff-indata börjar på $0,007 per 1M tokens.
De praktiska spakarna, i ordning efter påverkan: håll sessioner korta så att kontexten inte snöbollar, kör rutinarbete på Flash och spara Pro för de verkligt svåra uppgifterna, och använd Minimal-läget för benchmark-liknande körningar eftersom det ger modellen exakt två verktyg och ingen kontextkompaktering.
Innan du lanserar: DeepSeek Harness licens och förhandsversionsrisker
Tre korta saker, och sedan FAQ.
Licensen är MIT, så kommersiellt bruk är okej. Men projektet märker sig själv som en utvecklarförhandsversion och anger, med versaler, att det kommer att finnas kompatibilitetsbrytande ändringar. Lås en version och koppla den inte in i en produktionssläpp-pipeline än.
Dina autentiseringsuppgifter ligger i klartext på din maskin, på $DSH_HOME/.credentials.yaml med inställningar bredvid i $DSH_HOME/settings.yaml, båda standard till ~/.dsh. Om din selens hemkatalog någonsin hamnar inuti ett arkiv, lägg till den i .gitignore:
text1.dsh/ 2
Och den uppenbara som är lätt att glömma: din kod skickas till den slutpunkt du konfigurerade i steg 4. Läs den leverantörens datavillkor innan du pekar en agent mot en privat kodbas.
Vanliga frågor
Är DeepSeek Harness gratis?
Selen är gratis och MIT-licensierad, utan konto eller prenumeration krävs, och du får använda den kommersiellt. Modelltokens debiteras separat av den leverantör du ansluter. Att peka den mot en lokal Ollama-modell ger dig en genuint noll tokenkostnad, betald i hårdvara och hastighet.
Behöver jag en DeepSeek API-nyckel för att installera DeepSeek Harness?
Nej. Installation och en DeepSeek-nyckel är orelaterade. npx @deepseek-ai/dsh web körs utan någon autentiseringsuppgift alls. Du behöver bara en nyckel när du vill att agenten faktiskt ska anropa en modell, och det kan vara en nyckel för vilken OpenAI-kompatibel slutpunkt som helst, inklusive en lokal server.
Kan DeepSeek Harness köra andra modeller än DeepSeek?
Ja. Anpassade leverantörer accepterar openai-completions, och adaptern täcker protokoll som kan beskrivas med en nyckel, en slutpunkt och rubriker. Lägg till en andra leverantör genom att lägga till ett annat block under providers: i settings.yaml med eget ID, bas-URL och modeller. Bedrock, Vertex, Azure och Codex är medvetet utanför räckvidd eftersom deras autentisering behöver mer än så.
Varför returnerar min anpassade leverantör 401 eller "okänd modell"?
En 401 betyder nästan alltid att nyckeln är fel eller inte läses från miljövariabeln som anges i apiKeyEnv. En okänd modell betyder vanligtvis att slutpunkten inte exponerar ett modellindex, så inget hämtades: skriv modell-ID för hand istället. Kontrollera också stavningen av leverantörs-ID, eftersom det inte kan bytas namn, bara ersättas.
Var lagrar DeepSeek Harness min API-nyckel och inställningar?
Nycklar hamnar i $DSH_HOME/.credentials.yaml och handskrivna modellinställningar i $DSH_HOME/settings.yaml, båda under ~/.dsh om du inte åsidosätter DSH_HOME. Sessioner bor i $DSH_HOME/storages och profiler i $DSH_HOME/profiles/<name>. Håll hela katalogen utanför versionskontroll.
Är DeepSeek Harness redo för produktion?
Inte än, enligt egen utsago. Projektet levereras som en utvecklarförhandsversion och varnar uttryckligen för kompatibilitetsbrytande ändringar, vilket är en rättvis beskrivning av programvara som är några dagar gammal. Använd den för lokal utveckling och CI-hjälp, lås den version du testade, och läs igenom leverantörsdokumentationen efter uppgraderingar.
Verifierad mot DeepSeek Harness utvecklarförhandsversion den 17 augusti 2026. Detta projekt levererar brytande ändringar medvetet, så om ett fältnamn i din version ser annorlunda ut än YAML ovan, kontrollera den officiella leverantörsdokumentationen innan du antar att konfigurationen är fel.






