CLI da retschertga · ocl

Controllar citaziuns e conservar funtaunas directamain dal terminal

ocl è in pitschen client senza dependenzas per l’API da retschertga OpenCaseLaw. El serva a l’advocata al terminal sco a l’agent IA en in script: text legibel sin il visur, JSON en la pipe. Tut quai ch’el mussa vegn dal servetsch senza midada: identificaturs, citaziuns, text da las consideraziuns.

Installaziun

Python 3.10 u pli nov. Installai il client da PyPI sco utensil cun pipx u uv; omadus creeschan l’ambient isolà che las installaziuns actualas da Python pretendan. ocl doctor controlla la connexiun, il server ed il client.

pipx install opencaselaw-cli        # or: uv tool install opencaselaw-cli
ocl --help

Senza pipx u uv duvrai in ambient virtual: python3 -m venv .venv && .venv/bin/pip install opencaselaw-cli, lura .venv/bin/ocl. Actualisar cun pipx upgrade opencaselaw-cli (u uv tool upgrade opencaselaw-cli).

1. Controllar las citaziuns d’in sboz

Mettai las referenzas da voss sboz en ina datoteca, ina per lingia, u sco lingias JSON sch’ina referenza numna ina consideraziun. Mintga referenza returna sco resolved, missing u ambiguous cun la decisiun chattada; ina consideraziun vala sco resolved mo sch’ella exista en l’index.

cat > references.jsonl <<'JSONL'
{"reference":"BGE 136 III 513","pinpoint":"2.3"}
{"reference":"4A_747/2012"}
{"reference":"BGE 999 III 1"}
{"reference":"BGE 140 III 86","pinpoint":"2.3"}
JSONL
ocl citations resolve --input references.jsonl

Al terminal cumpara:

resolved              BGE 136 III 513  bge_BGE_136_III_513  E. 2.3 retrieved
resolved              4A_747/2012      bger_4A_747_2012     BGer 4A_747/2012 vom 5. April 2013
missing               BGE 999 III 1                         not in the corpus
pinpoint_unavailable  BGE 140 III 86   bge_BGE_140_III_86   E. 2.3 not in the index

partial: 2 resolved, 1 missing, 1 pinpoint_unavailable.
Existence and pinpoints only; no assessment of legal support.

Il code da sortida è 4 perquai che betg tut è vegnì schlià. Quai che la controlla na fa betg: ella na di mai ch’ina decisiun sustegna vossa tesa, ch’ella vala anc u ch’ella correspunda a voss fatgs. Questa lectura resta vossa lavur.

2. Conservar las funtaunas davos ina notizia

In cumond fa la tschertga e salva las decisiuns tschernidas, las consideraziuns ed ils artitgels da lescha che vus numnais en in ordinatur: texts cumplets sco furnids, in INDEX.md legibel ed in manifest.json cun mintga dumonda, marca da temp, link a la funtauna e hash da datoteca. Datotecas salvadas na vegnan mai surscrittas; --resume finescha ina execuziun interrutta.

ocl bundle create 'Rachekündigung Art. 336 OR' --max-results 10 --passage 2 \
  --law OR:336 --out rachekuendigung-2026-09

L’ordinatur è legibel senza utensil:

rachekuendigung-2026-09/
  INDEX.md                                    what was saved, in plain language
  manifest.json                               every request, timestamp, hash, source link
  decisions/bge_BGE_136_III_513-5b3e22ef.txt  full text as served (+ .json metadata)
  passages/bge_BGE_136_III_513_2-ff487655.txt E. 2, verbatim
  laws/OR_336-812a5382.json                   Art. 336 OR, consolidation date, Fedlex link
  search/page-0000-1850ce82.json              the search page the selection came from

In pachet è complete sche mintga element dumandà è vegnì salvà, uschiglio partial cun mintga element betg reussì, per exempel ina decisiun chantunala senza consideraziuns numeradas. El conserva quai ch’il servetsch ha furnì quel di; il corpus vegn reconstruì mintga notg, la medema tschertga po tscherner autras decisiuns il proxim mais.

Tge ch’ils resultats signifitgan

  • resolved: la decisiun exista en il corpus. Cun ina consideraziun numnada exista quella e ses text stat en la lingia.
  • pinpoint_unavailable: la decisiun exista; la consideraziun numerada n’è betg en l’index da structura. Per ina sutconsideraziun cun bustab (E. 2a, 3c/aa) vegn furnì il numer surordinà (parent_retrieved); tschertgai là il bustab.
  • missing: nagina decisiun cun questa citaziun u quest numer da dossier. Ina citaziun sbagliada u ina largia en la cuvertura, mai ina cumprova ch’ina citaziun è inventada.
  • ambiguous: dapli ch’ina decisiun porta questa etichetta (numers da dossier vegnan reduvrads da differentas dretgiras). Tscherni ina decision_id.
  • unrecognized: la decisiun proponida dal servetsch na porta nagina etichetta scritta en la referenza; la proposta stat sut service_candidate, mai en decision_id. resolution_incomplete, error: identitad betg constatada u dumonda naufragada. Nagut vegn engiavinà.
  • total_is_lower_bound: true vul dir «almain tants». Ina tschertga da text vegn ordinada sur in dumber limità da candidats; has_more: false na cumprova mai che mintga decisiun relevanta è vegnida vesida.
  • Codes da sortida: 0 cumplet, 2 endataziun nunvalaivla, 3 servetsch u rait naufragads, 4 parzial u betg schlià (er ina decisiun u ina consideraziun che il servetsch n’ha betg). Scripts sa basan sin quels senza analisar prosa.
  • discrepancy: la decisiun è identifitgada, ma la data u il numer da dossier scrit sper la citaziun DTF cuntradi al register; discrepancies numna mintga divergenza.

Receptas

Tschertgar, lura retschaiver las decisiuns cumplettas, en ina pipeline:

ocl decisions search 'Rachekündigung Art. 336 OR' --max-results 5 --format jsonl |
  ocl decisions get --stdin --format jsonl > decisions.jsonl

Tut quai ch’ina dretgira ha decidì en ina perioda. Senza text da tschertga enumereschan ils filters ina quantitad exacta, pagina per pagina:

ocl decisions search --court bge --date-from 2026-01-01 --date-to 2026-06-30 \
  --sort date_desc --max-results 500 --format jsonl > bge-2026-h1.jsonl

Citar ina consideraziun litteralmain, cun la citaziun che tutga tar ella:

ocl decisions passage bge_BGE_136_III_513 2.3
ocl cite 'BGE 136 III 513' --pinpoint 2.3 --language fr

Ina lescha sco ch’ella valeva ad ina data:

ocl laws get OR --article 41 --as-of 2015-01-01

Tgi che citescha ina decisiun da princip:

ocl citations list bge_BGE_140_III_86 --direction incoming --limit 50

Agents da code sco Claude Code u Codex fan ils medems cumonds en ina shell e legian il JSON; las funtaunas restan en datotecas che vus pudais controllar, betg en la memoria dal model.

Per agents

In agent dovra quatter chaussas: ina installaziun senza dumondas, in output ch’el po analisar, verdicts sin ils quals el po sa basar, e reglas ch’el na po betg evitar. ocl furnescha tuttas quatter: JSON uschespert che l’output va en ina pipe; codes da sortida che portan il verdict (0 tut schlià, 2 endataziun nunvalaivla, 3 servetsch u rait, 4 insatge n’è betg schlià); --cache, per che repetiziuns entaifer ina generaziun da la banca da datas na custian nagut; e trais skills furnids (controlla da citats, retschertga, ordinatur da cumprovas). ocl tool call cuntanscha mintga utensil da retschertga dal servetsch.

ocl agent-guide                  # the contract on one page: JSON, exit codes, statuses, rules
ocl skills install --claude      # citation-check, research, evidence-bundle into ~/.claude/skills
ocl tool list                    # every research tool of the service
ocl tool call find_leading_cases query='Rachekündigung Art. 336 OR' limit=5
ocl quotes check --input quotes.jsonl --format jsonl
ocl citations resolve --input refs.jsonl --format jsonl --cache ~/.cache/ocl

Las reglas n’èn betg negoziablas: ils texts da citaziun ed ils citats vegnan dal servetsch senza midada; in close_match u service_candidate è ina infurmaziun per l’autura, mai in remplazzament; l’utensil constatescha existenza e formulaziun, betg la purtada giuridica. opencaselaw_cli.api porscha il medem sco biblioteca.

Nua ch’el tutga

  • Conversaziun: connectai Claude, ChatGPT u in auter client MCP cun mcp.opencaselaw.ch (configuraziun per client).
  • Scripts, notebooks ed agents: ocl, u directamain l’API REST. Ils medems records, las medemas limitas.
  • Analisas sin l’entir corpus: il set da datas Parquet.

Limitas

Ina tschertga da text vegn tramessa sco ina suletta dumonda ordinada cun maximalmain 800 resultats; tschertgas mo cun filters vegnan paginadas. Dumondas largas pon surpassar il temp maximal e vegnan annunziadas sco errur, betg sco resultat vid. Leschas chantunalas vegnan inditgadas sco --law ZH/StG:1. Las dumondas van al servetsch hostà ed èn suttamessas a la decleraziun da protecziun da datas; --base-url inditgescha in server manà separadamain.

La guida cumpletta cun las parts da referenza (tschertga e retschaiver, pachets, resoluziun da citaziuns, contract da l’API) stat sin GitHub: docs/research-cli.md.