{"id":49328506,"url":"https://github.com/totonga/odsbox-pilot","last_synced_at":"2026-05-28T06:10:41.191Z","repository":{"id":354028652,"uuid":"1221842155","full_name":"totonga/odsbox-pilot","owner":"totonga","description":"A desktop query tool for ASAM ODS servers, built on top of odsbox.","archived":false,"fork":false,"pushed_at":"2026-05-22T21:59:04.000Z","size":586,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-22T23:39:42.140Z","etag":null,"topics":["asam","data-science","jaquel","ods","query","query-builder"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/totonga.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-26T18:47:30.000Z","updated_at":"2026-05-22T21:59:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"0a626967-d6a1-42ab-b257-a91fd75ad9e7","html_url":"https://github.com/totonga/odsbox-pilot","commit_stats":null,"previous_names":["totonga/odsbox-pilot"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/totonga/odsbox-pilot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/totonga%2Fodsbox-pilot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/totonga%2Fodsbox-pilot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/totonga%2Fodsbox-pilot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/totonga%2Fodsbox-pilot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/totonga","download_url":"https://codeload.github.com/totonga/odsbox-pilot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/totonga%2Fodsbox-pilot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33596376,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asam","data-science","jaquel","ods","query","query-builder"],"created_at":"2026-04-26T21:00:42.314Z","updated_at":"2026-05-28T06:10:41.179Z","avatar_url":"https://github.com/totonga.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# odsbox-pilot\n\n[![PyPI](https://img.shields.io/pypi/v/odsbox-pilot)](https://pypi.org/project/odsbox-pilot/)\n[![Python](https://img.shields.io/pypi/pyversions/odsbox-pilot)](https://pypi.org/project/odsbox-pilot/)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)\n[![CI](https://github.com/totonga/odsbox-pilot/actions/workflows/ci.yml/badge.svg)](https://github.com/totonga/odsbox-pilot/actions/workflows/ci.yml)\n\n**ODS Pilot** is a desktop application for querying and exploring\n[ASAM ODS](https://www.asam.net/standards/detail/ods/) measurement-data servers.\nIt provides an interactive GUI that lets you write and run queries, browse the\ndata hierarchy, and inspect the entity-relation model — all without writing any code.\n\n---\n\n## Features at a glance\n\n| | Feature |\n|---|---|\n| 🔌 | **Multi-server management** — save and switch between multiple ODS server configurations |\n| 🔐 | **Secure credentials** — passwords stored in the OS keyring (never in plain text) |\n| 🔑 | **Flexible authentication** — Basic, OIDC, and M2M auth modes |\n| ✏️ | **Interactive query editor** — JSON/JAQueL editor with syntax highlighting (CodeMirror) |\n| 📋 | **Examples \u0026 history** — built-in query examples and per-session history |\n| 📊 | **Tabular results** — sortable result grid powered by pandas; export to CSV |\n| 🌳 | **Browse tab** — point-and-click navigation of the data hierarchy with filter conditions |\n| 🗂️ | **Model tab** — read-only browser for the complete entity-relation schema and enumerations |\n| 🤖 | **AI-powered queries** (optional) — natural language query parsing with local LLM inference |\n\n---\n\n## Requirements\n\n- Python 3.14 or later\n- A running ASAM ODS server (REST API)\n\n---\n\n## Installation\n\n**Quickest start — no install needed** (always runs the latest release):\n\n```bash\nuvx odsbox-pilot[gui]@latest\n```\n\n**Install as a persistent tool** with [uv](https://docs.astral.sh/uv/):\n\n```bash\nuv tool install odsbox-pilot[gui]\nodsbox-pilot\n```\n\n**Install with pip:**\n\n```bash\npip install odsbox-pilot[gui]\npython -m odsbox_pilot\n```\n\n---\n\n## Quick start\n\n1. Launch ODS Pilot — the **Server List** dialog opens automatically.\n2. Click **Add…** and enter your server URL, username, and password.\n3. Double-click your server (or select it and click **Connect**).\n4. Use the tabs to query, browse, and inspect your data.\n\n**Command-line shortcut** — skip the server list and connect directly:\n\n```bash\nodsbox-pilot --server \"My Server\"   # connect by saved name\nodsbox-pilot --list-servers         # print all saved names\n```\n\n---\n\n## The three tabs\n\n### Query tab\n\nWrite [JAQueL](https://github.com/totonga/jaquel) queries in a JSON editor and run them\nagainst the server. Results appear in a sortable table.\n\n```json\n{ \"Unit\": {} }\n```\n\nUse **Examples ▾** for ready-made patterns (filters, joins, aggregations) and\n**History ▾** to re-run previous queries. Export any result with **Ctrl+S**.\n\n**🤖 AI-powered query parsing** (optional) — If you install the AI dependencies and\ndownload a model, an AI input bar appears above the editor. Type a natural language\nquery like `\"Show measurements Profile_* from last year\"` and the AI will parse it into\nstructured conditions and generate the corresponding JAQueL query for preview before\napplying.\n\nTo enable AI features:\n```bash\nuv sync --extra ai  # installs openvino-genai and huggingface-hub\n# Then download a model in Settings → AI Model Manager (coming in Phase 6)\n```\n\n### Browse tab\n\nNavigate the ODS data hierarchy without writing queries. Pick a root entity, add optional\nfilter conditions, and click **Query**. Expand tree nodes to follow relations level by\nlevel. Click any instance to see its attributes on the right. The JAQueL query for the\ncurrent view is shown in the preview panel.\n\nFilter conditions are saved in `~/.ods-pilot/browse_conditions.json` and persist across\nsessions.\n\n### Model tab\n\nA read-only schema browser loaded from the ODS model on connect (no extra server calls).\nEntities are colour-coded by base type. Expand any entity to see its attributes\n(with data-type symbols) and relations (with cardinality). All enumerations and their\nindex values are listed at the bottom.\n\n---\n\n## Keyboard shortcuts\n\n| Shortcut | Action |\n|---|---|\n| **Alt+Enter** / **Ctrl+Enter** | Execute query |\n| **Ctrl+S** | Export results to CSV |\n| **Ctrl+W** | Disconnect from current server |\n| **Alt+F4** | Exit |\n\n---\n\n## Documentation\n\n- 🛠️ [Developer guide](DEVELOPER.md) — setup, project structure, tests, and CI\n- 📝 [Changelog](CHANGELOG.md)\n\n---\n\n## License\n\nApache License 2.0 — see [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftotonga%2Fodsbox-pilot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftotonga%2Fodsbox-pilot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftotonga%2Fodsbox-pilot/lists"}