Hva er PocketHook Agent Server?#
Agentserveren gjor PocketHook til en fullverdig AI-assistent. I stedet for a skrive responslogikk selv, kobler du til en LLM (Claude, GPT, Gemini osv.) som behandler meldinger, kaller verktoy og returnerer strukturerte PocketHook-svar — inkludert Shortcut-utlosere.
Serveren kjorer pa din egen maskin. Dataene dine forblir hos deg.
Dette er et utgangspunkt. Serveren leveres med et kjernesett med verktoy og er designet for a utvides av deg. Legg til dine egne integrasjoner — e-post, kalendere, dokumenter, APIer — og gjor den til din.
Funksjoner#
- Multi-leverandor LLM — Anthropic, OpenAI, GitHub Copilot, Google, Mistral, Groq, xAI, OpenRouter, Ollama (lokal), LM Studio (lokal)
- OAuth-autentisering — GitHub Copilot og OpenAI Codex via enhetskode-/nettleserflyt
- Agentverktoy — Shell-kommandoer, fillesing/skriving, katalogoppforing, websok, web scraping, dev-serveradministrasjon
- Rammeverk/bruker-deling — Rammeverksfiler (
skills/,custom-tools/,config/) forblir skrivebeskyttet. Dine tilpasninger bor underdata/user/(ferdigheter, tilpassede verktoy, instruksjoner, typede preferanser). Rammeverksoppdateringer lander rent uten a overskrive arbeidet ditt - Typede brukerpreferanser — Lagre verdier som din foretrukne kartapp eller tunneldomene i
data/user/prefs.json. Referer til dem i ferdigheter som{{prefs.key}}, og serveren setter dem inn ved innlasting - Programmeringsoppgaver i ett kall — Meta-verktoyet
run_code_joboppretter en bakgrunnsjobb av prompt-typen (kjort av din konfigurerte LLM) og sender brukeren bekreftelsen i ett trinn, og erstatter det feilutsatte monsteret “respond + create-job” - Typede protokollverktoy — Seks dedikerte
respond_*-verktoy (respond_text,respond_image,respond_buttons,respond_shortcut,respond_html,respond_sequence), pluss typede jobbverktoy (create_once_job,create_cron_job) og typede workspace-verktoy (create_project,list_projects,delete_project). Skjemaer avviser feilformede URL-er, knappesyntaks ogtype/schedule-kombinasjoner for de nar enheten - Typede skribenter for tilpasning —
create_user_skillogcreate_custom_toolbygger brukerlagets markdown med korrekt frontmatter, sa lasteren alltid parser dem og agenten aldri skriver disse filene for hand - Bakgrunnsjobber — Engangs- eller gjentagende oppgaver med cron-uttrykk eller enkle intervaller
- Dynamiske ferdigheter — Definer Shortcuts og atferdsregler som
.md-filer. Bare en kompakt indeks lastes inn i prompten; fullt innhold hentes pa foresporsel viaload_skill-verktoyet - Selvadministrerende ferdigheter — Agenten kan opprette, redigere og slette ferdighetsdefinisjoner (skrivinger lander alltid i brukerlaget)
- Semantisk minne — Vektorbasert sok med embeddings (Ollama, LM Studio eller OpenAI). Minner klassifiseres automatisk av LLM-en i wing/room/hall/status-dimensjoner
- Kunnskapsgraf — Temporalt triple-store for varige fakta med automatisk invalidering. Flerverdi-relasjoner sameksisterer; enkeltverdi-fakta erstattes automatisk
- PARA-metoden med prosjektavslutnings-kaskade — Hvert minne tagges med en status (Prosjekt, Omrade, Ressurs, Arkiv). Nar et prosjekt avsluttes, arkiverer ett enkelt
complete_project-kall vektorene, ugyldiggjor hvert planleggingstriple knyttet til prosjektets slug og registrerer fullforelsen — ett kall i stedet for tre - Hybrid gjenkalling — Kombinerer FTS5-sokordssok med vektor-semantisk sok ved hjelp av reciprocal rank fusion
- Langtidsminne — SQLite + FTS5-fulltekstsok som fallback nar semantisk minne er deaktivert
- Dev-serveradministrasjon med tunnelkontrakt — Start, stopp og list dev-servere. Nar
tunnel: truebes om, handhever serveren det bade for-flyving og etter-spawn — en utilgjengelig localhost-server blir aldri staende stille i gang - Automatisk URL-rensing — Hvis agenten etterlater en
localhost-URL i et svar, skriverrespond_*-verktoyene den om til den matchende tunnel-URL-en, sa telefonen din alltid far en naabar lenke - Tilpassede verktoy — Agenten kan installere CLI-verktoy og registrere dem som nye evner
- Versjonering — Automatisk git-versjonering for workspace-filer; konfigurasjonsbackup for ferdigheter og tillatelser
- Webdashbord — Live-oversikt over bakgrunnsjobber, tilpassbart per bruker.
/dashboardog/api/jobser bevisst uautentiserte — begrens tilgang pa nettverkslaget (Tailscale-ACL, brannmur, reverse proxy med basic auth) eller settDASHBOARD=falsehvis du ikke trenger det - HTTPS-tunneling — Innebygd stotte for Tailscale, ngrok og Cloudflare Tunnel
- Systemtjeneste — Installer som persistent tjeneste pa macOS, Linux eller Windows
- Frekvensbegrensning — Per-token foresporselsgrenser med konfigurerbare terskler
Krav#
- Bun runtime
- En API-nokkel eller OAuth-legitimasjon for LLM-leverandoren din
- (Valgfritt) Tailscale, ngrok eller cloudflared for HTTPS-tunneling
Hurtigstart#
git clone https://github.com/pockethook-app/pockethook-agent-server.git
cd pockethook-agent-server
bun install
# Interaktivt oppsett — velg leverandor, modell, auth-token, port
bun run setup
# Start server + HTTPS-tunnel
bun run dev:tunnel
Oppsettsveiviseren guider deg gjennom valg av LLM-leverandor, konfigurering av autentisering og oppsett av verktoytillatelser.
Nar serveren kjorer, kopier de viste URL-ene til PocketHook-innstillinger:
| PocketHook-innstilling | URL |
|---|---|
| Server-URL | https://your-host |
| Helsesjekk-URL | https://your-host/health |
| Polling-URL | https://your-host/jobs |
Hvordan det fungerer#
- Du sender en melding i PocketHook
- Serveren videresender den til din valgte LLM med samtalehistorikk, hentede minner og tilgjengelige verktoy
- LLM-en behandler meldingen — den kan kjore shell-kommandoer, lese/skrive filer, soke pa nettet, planlegge bakgrunnsjobber, huske fakta eller starte dev-servere
- Svaret returneres i PocketHook-format (
msg+shortcut+data+url) - PocketHook viser meldingen og kjorer alle Shortcuts pa enheten din
Stottede LLM-leverandorer#
| Leverandor | Autentisering | Standardmodell |
|---|---|---|
| Anthropic | API-nokkel | claude-sonnet-4-20250514 |
| OpenAI | API-nokkel | gpt-4.1-mini |
| OpenAI Codex | OAuth | gpt-5.1-codex-mini |
| GitHub Copilot | OAuth | claude-sonnet-4 |
| Google (Gemini) | API-nokkel | gemini-2.5-flash |
| Mistral | API-nokkel | mistral-medium-latest |
| Groq | API-nokkel | llama-3.3-70b-versatile |
| xAI (Grok) | API-nokkel | grok-3-mini-fast |
| OpenRouter | API-nokkel | anthropic/claude-sonnet-4 |
| Ollama (lokal) | Ingen | llama3.2 |
| LM Studio (lokal) | Ingen | qwen3.5-4b-mlx |
Bytt leverandor nar som helst med bun run switch. Ollama og LM Studio kjorer helt pa maskinen din — ingen API-nokkel nodvendig, ingen data forlater nettverket ditt.
Minne#
Minnesystemet har tre lag, som hver tjener et ulikt formal.
Designet av det semantiske minnet kombinerer ideer fra MemPalace (en minnepalassarkitektur som organiserer minner i wings, halls og rooms) og Tiago Fortes PARA-metode (Prosjekter, Omrader, Ressurser, Arkiv) for kunnskapslivssyklusstyring.
Samtaleminne#
SQLite med FTS5-fulltekstsok. Alle meldinger lagres med tidsstempler og sesjons-IDer.
- Korttid — Siste
MAX_HISTORYmeldinger holdt i minnet per sesjon - Langtid — Alle meldinger lagret i SQLite, sokbare via FTS5-sokordmatching
- Gjenkalling per tur — Nar semantisk minne er pa, styrer
MAX_RECALLhvor mange relevante minner som injiseres i prompten hver tur - Sesjoner utloper etter
SESSION_TTL_MINUTES, men langtidsminnet bestar for alltid
Juster disse interaktivt med bun run memory.
Semantisk minne#
Krever VECTOR_MEMORY=true og en embedding-leverandor (Ollama, LM Studio eller OpenAI).
Hvert minne integreres som en vektor og klassifiseres automatisk av LLM-en i fire dimensjoner:
- Wing — Entiteten:
user,person:john,project:blog,place:london - Room — Typen:
facts,preferences,events,decisions,requests - Hall — Emnet:
personal,tech,health,travel,food,work - Status — PARA-klassifisering:
project,area,resource,archive
Nar du stiller et sporsmal, fokuserer entitetsekstraksjon vektorsoket pa de mest relevante wings. Resultater slas sammen med FTS5-sokordresultater via reciprocal rank fusion — sa du far det beste av bade sokords- og semantisk sok.
Kunnskapsgraf#
Et temporalt triple-store for strukturerte, varige fakta:
- Tripler:
(subjekt, predikat, objekt)medvalid_from/valid_untiltidsstempler - Enkeltverdi-predikater (
lives_in,partner) ugyldiggjor automatisk den gamle verdien ved oppdatering - Flerverdi-predikater (
child,friend,hobby) sameksisterer uten ugyldiggjoring - Kunnskapsgraffakta injiseres sammen med hentede minner i hver samtale
Nar du forteller agenten “Jeg har flyttet til Berlin”, ugyldiggjor den det gamle lives_in-trippelet og oppretter et nytt — automatisk.
PARA-livssyklus#
Hvert minne tagges med en PARA-status:
- Prosjekt — Aktivt, tidsbundet arbeid
- Omrade — Pagende ansvarsomrader
- Ressurs — Referansemateriale (lister, anbefalinger, veiledninger)
- Arkiv — Fullforte eller avbrutte prosjekter
Nar et prosjekt fullfores, bruker agenten semantisk likhet for a bare arkivere det prosjektets minner mens referansemateriale bevares for fremtidig bruk.
Prosjektavslutnings-kaskade#
Si “Jeg avbestiller turen min til Barcelona”, og ett enkelt verktoykall handterer alt:
- Arkiverer prosjektets vektorer (events, decisions, requests knyttet til Barcelona).
- Ugyldiggjor hvert aktive kunnskapsgraftriple hvis predikat matcher prosjektets slug (
scheduled_visit_barcelona,planning_visit_barcelona,confirmed_visit_barcelona). - Registrerer fullforelsen som et nytt triple:
(user, "cancelled_visit_barcelona", "2026-04-15").
Matchingen er grensebevisst — et annet prosjekt kalt revisit_barcelona blir urort. Agenten trenger ikke lenger a orkestrere tre separate kall i riktig rekkefolge, sa mindre modeller far det ogsa til.
Hvis VECTOR_MEMORY er deaktivert eller embedding-leverandoren er utilgjengelig, faller systemet feilfritt tilbake til FTS5-only.
Ferdigheter#
Ferdigheter er .md-filer i skills/ som definerer iOS-Shortcuts agenten kan utlose og/eller atferdsregler. De bruker dynamisk lasting: bare en kompakt indeks (tittel, beskrivelse, shortcutliste) injiseres i systemprompten. Agenten laster fullt innhold pa foresporsel via load_skill-verktoyet, sa tokenforbruket holdes lavt nar du legger til flere ferdigheter.
Hver ferdighetsfil bruker YAML-frontmatter:
---
title: Notes
description: Create notes on the user's device with a title and body
shortcuts: [newNote]
target: mac
sync_app: Notes
---
### New Note
Shortcut name: `newNote`
Creates a new note on the user's device.
Data fields:
- title (string, required): Note title
- content (string, required): Note body
Frontmatter-felter#
| Felt | Pakrevd | Beskrivelse |
|---|---|---|
title | Ja | Lesbart navn |
description | Ja | En setning brukt i ferdighets-indeksen som vises til agenten |
shortcuts | Ja | Array med shortcut-navn definert i filen. Bruk [] for ferdigheter som kun inneholder atferdsregler |
target | Nei | Hvor shortcuts utfores: device (standard, sendes til iOS) eller mac (kjores pa serveren) |
sync_app | Nei | App som kort apnes i bakgrunnen etter serverkjoring for a utlose iCloud-synkronisering (f.eks. Notes, Calendar, Reminders). Utelat eller bruk none for a hoppe over |
Ferdigheter kan ogsa vaere atferdsregler uten shortcuts (f.eks. “hvordan planlegge en familieferie”). Bruk shortcuts: [] for disse.
Agenten kan opprette og administrere ferdigheter nar du ber om det — be den om a “opprette en ferdighet for a styre lysene mine” og den skriver .md-filen for deg. Nye og redigerte ferdigheter lander alltid i brukerlaget ditt (data/user/skills/), sa rammeverksoppdateringer aldri overskriver dem. Se avsnittet Customizing your agent nedenfor.
Kjore shortcuts pa Mac-serveren#
Nar en ferdighet har target: mac, kjores shortcuts stille pa Mac-serveren via CLI-verktoyet shortcuts run i stedet for a sendes til iOS-enheten. Dette er ideelt for handlinger som oppretter iCloud-synkronisert innhold — notater, paminnelser, kalenderhendelser — fordi resultatet synkroniseres til alle enhetene dine automatisk uten at PocketHook-appen ma gjore noe.
Slik fungerer det:
- Agenten bestemmer at en shortcut skal kjores (f.eks. “opprett et notat med dagens moteopptak”)
- Serveren kaller
shortcuts run "shortcutNavn"med dataene sendt som JSON pa stdin, i samme wrapper-format som PocketHook iOS bruker - Hvis
sync_apper satt, apner serveren kort den appen i bakgrunnen (open -gj -a Notes) for a tvinge iCloud-synkronisering, og lukker den etter 5 sekunder - Brukeren mottar en bekreftelsesmelding i chatten; selve shortcut’en sendes ikke til enheten
Krav:
- Serveren ma kjore pa macOS —
shortcuts runfinnes kun pa macOS. Pa andre plattformer logger serveren en advarsel og faller tilbake til enhetskjoring - Shortcut’en ma vaere installert i Shortcuts.app pa Mac-serveren
- Shortcut’en bor forvente et Dictionary som inndata (PocketHook pakker data inn i
{ context, timestamp, app, data })
Nar du bor bruke target: mac:
- iCloud-synkroniserte handlinger (Notes, Reminders, Calendar) — resultatet nar uansett alle enheter
- Langvarig behandling du vil holde unna iOS-enheten
- Alle shortcuts som ikke trenger a interagere med iPhone’s brukergrensesnitt
Nar du bor beholde target: device (standard):
- Shortcuts som trenger iPhone-spesifikke funksjoner (kamera, noyaktig posisjon, lokale app-automatiseringer)
- Shortcuts som ber brukeren om interaktiv input
- Shortcuts som bruker App Intents fra iOS-kun-apper
Bakgrunnsjobber#
Be agenten om a planlegge oppgaver, og den ordner resten:
- “Sjekk vaeret hver morgen klokken 8 og lag et notat”
- “Kjor dette skriptet hver time”
- “Minn meg pa a sjekke e-posten min om 30 minutter”
Jobber stotter cron-uttrykk (0 8 * * *) og enkle intervaller (30m, 1h, 2d). Resultater leveres til PocketHook nar den poller /jobs-endepunktet.
To kjoringstyper:
- Shell — Kjorer en bash-kommando, fanger opp utdata. Kan utlose en Shortcut ved fullforelse
- Prompt — Behandlet av AI-agenten med full verktoytilgang, lagrer det komplette PocketHook-svaret
Dev-servere#
Nar agenten oppretter et webprosjekt i workspace (Hugo, Astro, Next.js, Flask, Go osv.), tilbyr den proaktivt a servere det:
- Forhandsvisning — Starter en lokal dev-server pa en automatisk tildelt port for rask visning
- Offentlig — Starter serveren og eksponerer den via HTTPS-tunnel sa den er tilgjengelig overalt
Agenten styrer livssyklusen: start, stopp og list kjorende servere. Alle servere ryddes opp nar hovedserveren stoppes.
Tunnelkontrakt#
Nar agenten starter en server med tunneleksponering bedt om, handhever kjoretiden det: hvis ingen tunnelverktoy (Tailscale, ngrok, cloudflared) er installert, nekter serveren a starte. Hvis tunneloppsett feiler etter spawn, stoppes den foreldrelose prosessen, og agenten far beskjed eksplisitt — sa den kan falle tilbake til forhandsvisning eller be deg installere en tunnel. Den returnerte URL-en er alltid tunnel-URL-en nar tunneling er pa, med en merknad om at den lokale URL-en kun gjelder for verten.
Som et sikkerhetsnett etterbehandler hvert respond_*-verktoy sin melding: enhver localhost- eller 127.0.0.1-URL som sniker seg inn i et svar blir automatisk omskrevet til den matchende tunnel-URL-en nar en administrert server har en. Nar det ikke kan skrive om, far du en advarsel i loggene i stedet for en odelagt lenke pa telefonen.
Dashbord#
Det innebygde webdashbordet pa /dashboard viser en live-oversikt over bakgrunnsjobber.
Bevisst uautentisert. Bade
/dashboardog/api/jobser apneGET-endepunkter — hvem som helst som kan na verten kan liste jobber. Begrens tilgang pa nettverkslaget (Tailscale-ACL, brannmur, reverse proxy med basic auth) eller settDASHBOARD=falsehvis du ikke trenger det. PocketHook iOS-appen bruker ikke disse endepunktene.
Det er fullt tilpassbart:
- Hurtigredigering — Plasser en
dashboard.htmliworkspace/dashboard/for enkle tilpasninger - Fullt prosjekt — Opprett et rammeverksprosjekt (Svelte, React, Vue osv.) i
workspace/dashboard/med build-utdata tildist/
Be agenten om a tilpasse dashbordet ditt, og den ordner resten — hver bruker far et unikt, personalisert dashbord.
Tilpassede verktoy#
Agenten kan installere CLI-verktoy og registrere dem som nye evner — utvider seg selv uten a endre serverkoden.
Si for eksempel “installer Playwright og bruk det til a ta skjermbilder”. Agenten vil:
- Installere avhengigheten
- Opprette en verktoydefinisjon (en enkel
.md-fil) - Bruke det nye verktoyet i fremtidige samtaler
Tilpassede verktoy lastes inn pa nytt umiddelbart — ingen omstart nodvendig. Slett .md-filen for a fjerne et verktoy.
Versjonering#
Alle brukerdata versjoneres automatisk:
- Workspace-filer — Sporet med et lokalt git-repo inne i
workspace/. Hver skriving oppretter en auto-commit. Be agenten om a “angre den siste endringen” eller brukgit revert HEADmanuelt - Konfigurasjonsfiler —
config/agent-instructions.md,config/personality.md,skills/ogpermissions.jsonsikkerhetskopieres for hver endring. Opptil 20 versjoner per fil
Git er valgfritt — hvis det ikke er installert, er workspace-endringer ikke versjonert. Konfigurasjonsbackup fungerer alltid.
Tilpass agenten din#
Agentserveren leveres med en minimal rammeverksbase og forventer at du legger din egen tilpasning oppa. Kjoretiden holder de to adskilt sa rammeverksoppdateringer aldri odelegger arbeidet ditt.
Rammeverk vs bruker#
pockethook-agent-server/
├── skills/ # rammeverksleverte ferdigheter (skrivebeskyttet)
├── custom-tools/ # reservert for rammeverksleverte verktoy (skrivebeskyttet)
├── config/
│ ├── agent-instructions.md # rammeverkets agentinstruksjoner (skrivebeskyttet)
│ └── personality.md # rammeverkets personlighet (skrivebeskyttet)
└── data/user/ # DIN tilpasning bor her (git-ignorert)
├── skills/ # dine egne ferdigheter (overstyrer base pa filnavn)
├── custom-tools/ # dine installerte tilpassede verktoy
├── instructions.md # dine tillegg til agentinstruksjonene
└── prefs.json # typede verdier referert som {{prefs.key}}
Brukertilpasning skrives via dedikerte typede verktoy (create_user_skill, create_custom_tool), sa de resulterende filene alltid matcher lasterens format. write-verktoyet avviser ogsa enhver sti under skills/, custom-tools/ eller config/ og dirigerer agenten til data/user/* — sa selv direkte filredigeringer ender i brukerlaget.
Merknad om base-mappen
custom-tools/. I dag inneholder den bare en mal (_example.md) som lasteren ignorerer — hvert verktoy agenten installerer for deg havner idata/user/custom-tools/. Mappen er reservert slik at fremtidige rammeverksutgivelser kan levere valgfrie innebygde verktoy uten a odelegge dine installasjoner. Nar det skjer, vinner brukerlagsfilene dine fortsatt ved navnekollisjon, sa det er ingenting a migrere.
Fire mater a tilpasse pa#
| Hva du vil endre | Hvor det bor | Eksempel |
|---|---|---|
| En shortcut- eller atferds-ferdighet | data/user/skills/<navn>.md | “Opprett en ferdighet for a logge treningene mine” |
| Et CLI-verktoy pakket som agentevne | data/user/custom-tools/<navn>.md | “Installer ffmpeg og la meg bruke det til konverteringer” |
| En global regel (“svar alltid pa norsk”, “bruk aldri tabeller”) | data/user/instructions.md | “Fra na av, oppsummer alltid artikler i 3 punkter” |
| En typet standardverdi referert av ferdigheter | data/user/prefs.json | “Mitt standard ruteutgangspunkt er Madrid” → {"routeOrigin": "Madrid"} |
Du trenger aldri a skrive disse filene for hand. Bare si til agenten hva du vil, og den velger rett lag automatisk.
Typede preferanser med {{prefs.*}}#
Si at du skriver en ruteplanlegger-ferdighet som trenger a vite ditt standard utgangspunkt. I stedet for a hardkode “Madrid” i selve ferdigheten, referer til preferansen:
- **Utgangspunkt**: {{prefs.routeOrigin}}, med mindre brukeren angir et annet utgangspunkt.
Og lagre verdien i data/user/prefs.json:
{
"routeOrigin": "Madrid, Spania",
"preferredMapsApp": "apple",
"tunnel": { "domain": "my-host.ts.net" }
}
Serveren setter inn plassholdere nar ferdigheten lastes. Nestede nokler ({{prefs.tunnel.domain}}) fungerer ogsa. Ukjente nokler blir urort, sa skrivefeil forblir synlige.
Redigere rammeverksbasen direkte#
Hvis du selvhoster og vil fikle med selve rammeverket, kan du redigere config/agent-instructions.md, config/personality.md, skills/ eller custom-tools/ direkte — serveren stopper deg ikke nar du bruker en filredigerer. Men agenten vil ikke skrive til de stiene fra en samtale. Og rammeverksoppdateringer vil overskrive redigeringene dine. Foretrekk brukerlaget for alt du vil beholde.
Utvide serveren#
- Tilpassede verktoy — Be agenten om a installere CLI-verktoy; de havner i
data/user/custom-tools/automatisk - Legg til ferdigheter — Be agenten om a opprette en ferdighet; filen gar i
data/user/skills/ - Endre atferd — Be agenten om a anvende en global regel; den legges til i
data/user/instructions.md - Konfigurer tillatelser — Kjor
bun run permissionsfor a styre hvilke verktoy agenten kan bruke - Legg til innebygde verktoy — Implementer nye verktoyfunksjoner i
src/tools.tsfor dypere integrasjoner (krever a forke serveren)
Konfigurasjon#
Alle innstillinger lagres i .env (opprettet av bun run setup). Viktige alternativer:
| Variabel | Standard | Beskrivelse |
|---|---|---|
AUTH_TOKEN | (pakrevd) | Delt hemmelighet med PocketHook |
LLM_API_KEY | (pakrevd) | LLM-leverandorens API-nokkel |
LLM_PROVIDER | anthropic | Leverandornavn |
LLM_MODEL | claude-sonnet-4-20250514 | Modell-ID |
LLM_REASONING | off | Reasoning-niva: off, minimal, low, medium, high, xhigh. Hoyere niva legger til skjulte thinking-tokens (tregere + dyrere). Ignoreres av modeller som ikke stotter det |
PORT | 3000 | Serverport |
AGENT_NAME | PocketHook Assistant | Agentens visningsnavn |
MAX_HISTORY | 50 | Meldinger i korttidsminnet |
MAX_RECALL | 5 | Minner returnert per tur av semantisk gjenkalling (kun nar VECTOR_MEMORY=true) |
SESSION_TTL_MINUTES | 60 | Sesjonsutlop |
VECTOR_MEMORY | false | Aktiver semantisk minne (krever en embedding-leverandor) |
EMBEDDING_PROVIDER | ollama | Embedding-leverandor: ollama, lm-studio eller openai |
EMBEDDING_MODEL | nomic-embed-text | Embedding-modellnavn |
EMBEDDING_URL | (auto) | Embedding-API-URL |
EMBEDDING_API_KEY | — | API-nokkel for OpenAI-embeddings |
LOG_LEVEL | info | Loggniva: debug, info, warn, error |
RATE_LIMIT_MAX | 30 | Maks foresporsler per vindu |
DASHBOARD | true | Aktiver webdashbord (/dashboard-rute) |
INSTANCE_NAME | (basenavn pa prosjektmappen, med pockethook--prefiks fjernet) | Suffiks brukt for systemtjeneste-etiketten, loggmappen og prosessmatching. Sett eksplisitt nar du kjorer flere checkouts pa samme maskin |
Se den fullstendige konfigurasjonsreferansen i GitHub-repositoriet.
Kjore som tjeneste#
Installer som persistent tjeneste som starter automatisk:
bun run service install
| Plattform | Backend | Tjenesteplassering |
|---|---|---|
| macOS | launchd | ~/Library/LaunchAgents/com.pockethook.${INSTANCE_NAME}.plist |
| Linux | systemd (user) | ~/.config/systemd/user/pockethook-${INSTANCE_NAME}.service |
| Windows | NSSM | PocketHook-${PascalCase(INSTANCE_NAME)} i Windows Service Manager |
INSTANCE_NAME er som standard prosjektmappens basenavn med pockethook--prefikset fjernet (f.eks. blir en checkout i pockethook-agent-server/ til agent-server). Sett det eksplisitt for a kjore flere checkouts pa samme maskin uten kollisjoner — hver instans beholder sitt eget data/ og logger.
Administrer med bun run service status, restart, stop eller uninstall.
Sikkerhet#
- HTTPS pakrevd — PocketHook krever HTTPS for alle URLer
- Bearer-token-autentisering — Delt hemmelighet mellom app og server
- Frekvensbegrensning — Per-token grenser forhindrer misbruk
- Sandboxede verktoy — Shell-kommandoer og filtilgang begrenset av tillatelser
- Blokkerte monstre — Farlige kommandoer (
sudo,rm -rf /) blokkert som standard - Arbeidskataloggrense — Agenten kan ikke forlate sin tildelte katalog
- Sensitive filer beskyttet —
.env,.git,*.key,*.pemblokkert fra agenttilgang - Automatisk versjonering — Alle workspace-endringer git-spores for enkel tilbakerulling