Hopp til hovedinnholdet

Kanera CLI

@kanera/cli setter Kanera i terminalen din slik at du kan finne kort, administrere arbeid og automatisere oppgaver fra skallskript. AI-kodingsagenter som kan kjøre skallkommandoer, kan også bruke den, uten MCP-klientkonfigurasjon og ingen langvarig server.

Installasjon​

Krever Node.js 22 eller nyere. Kjør denne kommandoen i terminalen for å installere kanera Kommando globalt:

npm install --global @kanera/cli

Den publiserte pakken har ingen runtime-avhengigheter. Bekreft at kommandoen er tilgjengelig:

kanera commands

For å prøve det uten å installere:

npx @kanera/cli commands

Autentiser​

Logg inn via nettleseren din:

kanera auth login

auth login bruker OAuth-enhetsflyten, på samme måte som Claude og Codex kobler til. Den skriver ut en lenke og en kort kode, åpner lenken i nettleseren din og fullfører på egen hånd når du godkjenner. Kontroller at koden på siden samsvarer med terminalen din før du velger Tillat tilgang. Over SSH eller på en hodeløs maskin, åpne lenken på hvilken som helst enhet; pass --no-browser å hoppe lansere en.

CLI lagrer deretter et kortvarig tilgangstoken og et oppdateringstoken, og fornyer dem automatisk. Påloggingen vises under Innstillinger -> AI-agenter som Kanera CLI (datamaskinens navn), og endringer det gjør er merket med det navnet i korthistorikken. Tilbakekall det der, eller kjør kanera auth logoutDet er også slutt på serveren.

Navn på agent​

Når en AI-agent kjører CLI, navngi den ved pålogging, slik at arbeidet er merket som agentens:

kanera auth login --agent "Claude Code"

Innloggingen vises deretter som Claude Code (Kanera CLI på datamaskinens navn) på samtykkeskjermen, under Innstillinger -> AI-agenter, og som via Claude Code (Kanera CLI på ...) på hver kommentar, kort endring, varsling, og agent kjøre det gjør. KANERA_AGENT_NAME angir samme navn fra miljøet. Navnet er fastsatt for påloggingens levetid, så gi hver agent sin egen profil med --profile Når flere deler maskin. --agent gjelder ikke for API-nøkler, fordi arbeid gjort med en personlig nøkkel registreres som deg.

Bruk en API-nøkkel i stedet​

Bruk en API-nøkkel for CI, cron-jobber og uovervåkede agenter, der ingen er til stede for å godkjenne en nettleserpålogging, eller når du vil ha en legitimasjon som Kanera håndhever som skrivebeskyttet. Profilinnstillinger -> API-nøklereller i Arbeidsområdeinnstillinger -> API når legitimasjonen skal tilhøre et arbeidsområde i stedet for en person. Se Kanera API for forskjellen.

kanera auth login --with-api-key

På vert Kanera, dette åpner API-nøkler siden på https://board.kanera.app/settings/api-keys, ber om nøkkelen med terminalen ekko undertrykkes slik at det aldri lander i skallet rulle tilbake, verifiserer det mot Kanera, og lagrer den.

Endringer som gjøres med en personlig nøkkel, registreres som du, uten cialis Hvis du vil ha en agents arbeid merket, er en nettleserpålogging det beste valget. Skrivebeskyttet personlig nøkkel når legitimasjonen er for en uovervåket agent. CLI rapporterer omfanget det holder, og nektet skriver exit med en tydelig kode slik at en agent kan stoppe i stedet for å prøve på nytt.

kanera whoami # who am I, and what may this credential do?
kanera doctor # diagnose credentials, connectivity, and scope

I CI eller en agent sandkasse, hoppe over den lagrede profilen helt og sett KANERA_API_KEY.

Undersøk en tidsplan​

kanera schedule "$BOARD_ID" --json
kanera schedule --workspaceId "$WORKSPACE_ID" --json
kanera card update MKT-42 --changes.startDateLocalDate 2026-11-02 --changes.dueDateLocalDate 2026-11-06

Bruk nøyaktig ett område: et styreposisjonsargument eller --workspaceId. Lesingen returnerer Tidslinje motorens planlagte datoer, arbeidsdagsvarighet og slakk, kritiske kort, konflikter, projisert avslutning og slipp mot siste forfallsdato. Oppdateringen endrer lagrede datoer og krever skrivetilgang; den flytter ikke etterfølgere automatisk. Les tidsplanen etter endring av datoer.

kanera my-day --json inkluderer tidsplan konflikter, kritisk arbeid, og savnet planlagte starter; kanera portfolio --json returnerer den støttede samleoppdateringen på tvers av tavlen, inkludert plan helse per tavle. MCP Kundene er ikke gitt CLI- Det er en standardtransport.

Daglige kommandoer​

kanera my-day # overdue, due this week, idle, and Up next in one view
kanera work # your work across every accessible board
kanera boards # every board you can reach, including guest boards
kanera card MKT-42 # a card, by key, id, or URL
kanera card done MKT-42 # mark it complete
kanera comment MKT-42 "Shipped."
kanera search "renewal"
kanera priorities # an Up next queue
kanera separator create "$BOARD" "$LIST" "This week" --color blue
kanera capture "Renew the venue insurance" # a task in your private Scratchpad Inbox, no board needed
kanera remind MKT-42 "friday 3pm" # a private reminder on a card, up to 8 weeks ahead
kanera remind clear MKT-42
kanera reminders # your pending reminders, soonest first
kanera watch MKT-42 # follow a card's activity; kanera unwatch MKT-42 stops
kanera inbox # your latest notifications; then kanera inbox --since "<cursor>" for only what is new
kanera card upload-link MKT-42 test-run.log # a one-time URL; then curl -fsS -T ./test-run.log "<uploadUrl>"
kanera card attachment MKT-42 "$ATTACHMENT" # an attachment's text, or an image's details

Kortargumenter godtar en kortnøkkel som MKT-42, et kort-ID, eller en kanonisk kort URL, slik at du kan lime inn hva du har foran deg. YYYY-MM-DD eller fraser som "tomorrow 1pm" eller "next friday"Les i profilens tidssone: kanera card update MKT-42 --changes.dueDateLocalDate "friday 3pm".

kanera commands viser alt CLI kan gjøre, og fungerer før du logger deg inn. kanera commands --json er den maskinlesbare katalogen en agent bruker for å oppdage resten.

Den fulle verktøyoverflaten​

De navngitte kommandoene ovenfor er ergonomiske snarveier over Kanera's MCP verktøylag – de samme verktøyene som en AI-agent ser over MCP. Alt uten snarvei er fortsatt tilgjengelig:

kanera call cards.bulk_move --boardId "$BOARD" --cardIds[] MKT-42 --cardIds[] MKT-43 --listId "$LIST"
kanera help cards.bulk_move

Fordi CLI leser verktøylaget direkte i stedet for å re-implementere den offentlige API, kan kommandooverflaten ikke drive fra det agenter ser, og et nylig lagt til verktøy kan ringes fra skallet dagen det sendes.

tavlen separatorer​

Opprett en tittel, eventuelt farget skilletegn og plassere den i forhold til et kort eller en annen separator:

kanera separator create "$BOARD" "$LIST" "This week" --color blue \
--anchor.side before --anchor.item.type card --anchor.item.id "$CARD"

kanera separator move "$SEPARATOR" "$LIST" \
--anchor.side after --anchor.item.type separator --anchor.item.id "$OTHER_SEPARATOR"

kanera separator update "$SEPARATOR" --title "Next up" --color green
kanera separator delete "$SEPARATOR"

For en listekant, pass --anchor.side after --anchor.item null til toppen eller --anchor.side before --anchor.item null for bunnen. Sletting av skilletegn endrer ingen kort. kanera card move aksepterer samme maskinskrevne anker, slik at kortene kan plasseres umiddelbart før eller etter en separator.

Kortforhold​

Disse kommandoene leses fra venstre til høyre: det første kortet blokkerer det andre. Begge må tilhøre samme arbeidsområde.

kanera card block MKT-42 WEB-18 # MKT-42 blocks WEB-18
kanera card unblock MKT-42 WEB-18 # remove that dependency
kanera card relate MKT-42 WEB-18 # connect them without a required order
kanera card WEB-18 # full detail includes relationships
kanera work --filters.blockedOnly true # find waiting work
kanera work --filters.atRiskOnly true # blocker overdue or due after the card

For den inverse retningen eller flere mål, bruk det underliggende verktøyet:

kanera call cards.set_relations --cardId WEB-18 --direction blocked_by \
--otherCardIds[] MKT-42 --otherCardIds[] MKT-43

Pass --remove true for å fjerne de valgte relasjonene. Inspiser failed og notAttemptedCardIds på et delvis resultat: vellykkede tillegg forblir lagret når et annet mål blir nektet. Et resultat med relationsUnavailable navn vellykket skriver i addedCardIds eller removedCardIds når den endelige lesingen mislyktes. Vellykkede fjerninger rapporteres også ved siden av avslag per kort. Se Kortrelasjoner og blokkering for tillatelser, omruting og fullføringsvarsler.

Avhengighetsgrafer​

Bruk kanera deps å lese forutsetninger og nedstrøms arbeid i en samtale:

kanera deps MKT-42 # one card's blocking neighbourhood
kanera deps --boardId "$BOARD" # chains touching a board
kanera deps --workspaceId "$WORKSPACE" # chains in a workspace

Passer nøyaktig ett område. Et kortargument godtar sin nøkkel, UUID eller kanoniske URL. Kortomfattet utdata legger til focus med direkte blockedBy / blocks ID, transitiv upstream / downstream ID-er i nærmeste første orden, relatedTo, og onMap. Kort inkluderer lesbar tavle og listenavn og aktiv / off-map blokkering teller. Resultatet er begrenset til 400 kort og rapporter truncated. Se MCP-grafreferansen.

Argumenter​

Flagg kartlegger verktøyargumenter og tvinges ved hjelp av hvert verktøys eget JSON-skjema, aldri etter hvordan verdien ser ut - en kortnøkkel kan se numerisk ut og en id kan se boolsk ut.

kanera card update MKT-42 --changes.title "Revised" # dots nest
kanera work --scope.boardIds[] "$A" --scope.boardIds[] "$B" # repeat for arrays
kanera call cards.update --json-args '{"cardId":"MKT-42","changes":{"title":"Revised"}}'

Et matriseargument godtar også en JSON-matrise, den enkleste måten å sende en liste over objekter. Dette bygger en sjekkliste, dens elementer og en undersjekkliste i en samtale, og fullfører deretter to elementer i en annen:

kanera call checklists.create --cardId MKT-42 --title Launch \
--items '[{"text":"Prepare release","subChecklists":[{"title":"Verification","items":[{"text":"Run smoke tests"}]}]},{"text":"Announce launch"}]'
kanera call checklists.update_items --cardId MKT-42 \
--updates '[{"itemId":"<itemId>","changes":{"completed":true}},{"itemId":"<itemId>","changes":{"completed":true}}]'

Ukjente flagg, manglende påkrevde argumenter, feilformet --json-args, og overskudd posisjonsargumenter er bruksfeil. CLI aldri stille forkaster en operand.

Utdata​

FlaggUtdata
(ingen)Tabeller og sammendrag som er lett å lese for mennesker
--jsonA { ok, tool, data } konvolutt
--quietDet nakne resultatet, for å røre inn jq

Feil går alltid til støpt, selv i --json modus, så omdirigere stdout til en fil aldri blander en feil konvolutt inn i hva den som ringer mener er resultatdata.

Rate-begrenset og forbigående svikt inkluderer retryable og, når Kanera Forsyning en, retryAfter.

Avslutningskoder​

KodeBetydning
0Suksess
1Forespørselen mislyktes
2Dårlig bruk
3Ingen gyldig legitimasjon
4Forbudt – ofte en skrivebeskyttet legitimasjon, eller ingen redigeringsrolle på tavlen
5Ikke funnet
6Rate begrenset

4 Det er bevisst forskjellig fra 1En agent som holder en lest nøkkel må fortelle "Jeg kan ikke gjøre dette" bortsett fra "dette fungerte ikke", og stoppe i stedet for å prøve på nytt.

Registreringsopplysninger og profiler​

Oppløsningsrekkefølge: --api-key, så KANERA_API_KEY, deretter en lagret profil, som inneholder enten en nettleserpålogging eller en API-nøkkel. En eksplisitt nøkkel vinner alltid, slik at en CI-jobb aldri går gjennom en utviklers personlige pålogging.

Profiler bor i ~/.config/kanera/config.json, skrevet med modus 600. Navngitte profiler la en maskin holde flere identiteter:

kanera auth login --profile agent --api-key "kanera_u_live_..."
kanera --profile agent work --json
KommandoFormål
kanera auth loginLogg inn via nettleseren (--with-api-key eller --api-key for en nøkkel)
kanera auth statusVis den aktive legitimasjonen og dens omfang
kanera auth listListe over lagrede profiler
kanera auth tokenSkriv ut den aktive API-nøkkelen, for KANERA_API_KEY=$(kanera auth token). Pålogging til nettleser har ingen nøkkel å skrive ut.
kanera auth logoutFjerne en lagret profil, og avslutte en nettleserpålogging på serveren

Et arkiv kan velge en profil uten å holde en hemmelighet, i .kanera/config.json:

{ "profile": "agent" }

Filen kan ikke angi et API-origin. Origins mottar bærerens legitimasjon, så et utsjekket depot må ikke kunne omdirigere et. Bruk --url, KANERA_PUBLIC_API_URLeller opprinnelsen lagret med profilen under auth login. Ikke-loopback opprinnelse må bruke HTTPS.

Oppdateringer​

CLI sjekker npm for en nyere utgivelse på det meste en gang om dagen. Når den finner en, spør den etter at kommandoen er ferdig:

A new Kanera CLI is available: 1.7.0 → 1.8.0
Update now? [y/N]

Svar y Å løpe npm install --global @kanera/cli@<version>. Alle andre svar hopper over oppdateringen. CLI spør ikke igjen for en dag, og skriver ut kommandoen slik at du kan oppdatere senere.

CLI spør bare når en person er på en interaktiv terminal. Den sjekker aldri eller spør i --json eller --quiet når inn- eller utdata ikke er en terminal (som dekker agenter, skript og rør), når CI er satt, eller når du kjører den gjennom npx, som henter sin egen kopi. Set KANERA_NO_UPDATE_CHECK=1 for å slå av kontrollen helt.

Selvbetjent Kanera​

En nettleserpålogging er knyttet til distribusjonens MCP-adresse, så send den under innlogging:

kanera auth login --mcp-url https://your-kanera.example/mcp

Eller sett KANERA_MCP_URL. CLI leser MCP-serverens OAuth-metadata for å finne din Kanera-påloggingsside, så ingenting annet trenger å konfigureres.

For en API-nøkkel, peker du CLI på din offentlige API i stedet, og det lagres med profilen:

kanera auth login --with-api-key --url https://api.your-kanera.example

CLI kan ikke fortelle hvor en selvbetjent webapp lever fra API-opprinnelsen, så med en API-nøkkel åpner den ikke en nettleser. Lag nøkkelen i Kanera-webappen din under Innstillinger -> API-nøklerDeretter limer du den inn i prompten.

Eller sett KANERA_PUBLIC_API_URL per kommando. kanera doctor rapporterer endepunktet det løste, som vanligvis er den raskeste måten å finne en feilkonfigurert opprinnelse.

Bruk den fra en AI-agent​

To måter, og de er komplementære.

Som et skallverktøy. Installer CLI, gi agenten en skrivebeskyttet nøkkel, og la den kjøre kommandoer. kanera setup skriver instruksjonene agenten trenger:

kanera setup claude # writes .claude/skills/kanera/SKILL.md
kanera setup codex # appends Kanera instructions to AGENTS.md
kanera skill # prints the portable Agent Skill document for any other harness

kanera setup codex er idempotent, så å kjøre den etter en oppgradering stabler ikke dupliserte seksjoner i en fil du også redigerer for hånd. --global til setup claude Installer for din konto i stedet for ett prosjekt.

Når agenten allerede har koblet Kanera MCP verktøy, bruke dem i stedet for CLI. I enten transport, støttes kortlesing og oppdateringer bør ikke falle tilbake til nettleserautomatisering bare fordi Kanera har også et webgrensesnitt.

Som en MCP-server. kanera mcp tjener de samme verktøyene over stdio MCP ved hjelp av legitimasjonen du allerede har lagret:

{
"mcpServers": {
"kanera": {
"command": "kanera",
"args": ["mcp"]
}
}
}

Dette betyr at en kanera auth login dekker både terminalen og MCP-klienten, i stedet for en andre legitimasjon konfigurert på et andre sted. Med en nettleser pålogging, kanera mcp reléer Kanera MCP- tjeneren og fornyer tokenet mens det kjører. Den snakker både gjeldende MCP- protokoll og tidligere revisjoner, slik at enhver MCP- vert kan starte den. Abonnement på arrangementer tilbys ikke over stdio, siden en lokal vert ikke har noen vertsbasert tilbakeringing å levere til. Hvis klienten din støtter ekstern MCP med OAuth selv, kan du også koble den direkte til; se Koble Kanera til din AI-agent.

Plankrav​

Logg inn og personlig API nøkler fungerer på alle vertsplan, inkludert Free, og selvbetjent Kanera har ingen plankontroller. Arbeidsområde og tavle API nøkler trenger Pro eller Pro-prøveversjonen; hvis en vertsorganisasjon flytter til Free, blir de tilbakekalt, og kanera kommandoer ved hjelp av en feil med exit-kode 3 eller 4 til planen er gjenopprettet. Forespørsler følger API-rategrenser av styrets organisasjon, og CLI venter og prøver på nytt når det er kort over dem.