Use SQLite to query files, logs, Windows data, structured documents, source code, assemblies, and databases—then write the result to the terminal, files, workbooks, templates, or several outputs at once.
This repository contains the public ULP user manual, configuration and extension information, sample data, and locally staged release artifacts. ULP 1.0 is being prepared for release; experimental features and package locations may still change before publication.
Project home: https://log-parser.com
Useful operational data is scattered across formats. Answering one question can require a log viewer, a CSV script, Event Viewer, a directory utility, a database client, and another tool to create the final report. ULP puts those sources behind one table-and-query model:
input source -> table -> SQLite query -> result -> one or more outputs
This approach can reduce throwaway scripts, repeated imports, tool switching, and manual copy/paste. A query that proves useful can become a named Query library recipe, an automation gate, an MCP tool workflow, or a repeatable export. The same result can be delivered as a terminal table, CSV, JSON, Excel, HTML, Markdown, YAML, TOON, SQL, or Scriban-generated files.
ULP is especially useful when a full database or observability platform would be too heavy for a short investigation, but plain text search is not structured enough.
| Audience | Example uses |
|---|---|
| Administrators | Event Log summaries, file/directory reports, process and thread snapshots |
| Developers and support teams | Log triage, source-code discovery, assembly inspection, reproducible customer diagnostics |
| Analysts | Filter, join, aggregate, and export CSV, JSON, YAML, Excel, and database results |
| Security responders | Find rare values, correlate evidence, compare time windows, and preserve reviewable output |
| Automation engineers | Parameterized saved queries, conditions, multiple outputs, lifecycle SQL, scheduled runs |
| AI and coding agents | Bounded repository search, code intelligence, provider/schema discovery, MCP query and export tools |
| Microsoft Log Parser users | A familiar input/query/output workflow with SQLite joins, CTEs, windows, JSON, and modern writers |
ulp -i CSV --from .\employees.csv --table employees ` --query "SELECT department_id, COUNT(*) AS employees, ROUND(AVG(CAST(salary AS REAL)), 0) AS average_salary FROM employees WHERE lower(active)='true' GROUP BY department_id ORDER BY average_salary DESC" ` --format Markdown --no-pager
Representative result:
| department_id | employees | average_salary |
|---|---|---|
| 30 | 1 | 132000.00 |
| 10 | 3 | 117667.00 |
| 20 | 1 | 99000.00 |
| 40 | 1 | 88000.00 |
Export the same kind of result to several destinations in one run:
ulp -i CSV --from .\employees.csv --table employees ` --query "SELECT * FROM employees ORDER BY employee_id" ` --output file --format CSV --output-file .\reports\employees.csv ` --also-pipeline JSON=.\reports\employees.json ` --also-pipeline Excel=.\reports\employees.xlsx ` --also-pipeline HTML=.\reports\employees.html
Other entry points are explicit and reuse the same core capabilities:
ulp --help ulp --menu ulp --tui ulp --web ulp --mcp --database C:\Data\agent-session.sqlite
ULP offers three different integration styles:
- experimental web AI SQL Chat converts natural language into reviewable SQL and never executes generated SQL automatically;
- four packaged agent skills teach compatible agents repository search, code intelligence, data investigation, and safe query automation through the CLI;
- the local STDIO MCP server exposes provider/schema discovery, saved-query review, query execution, materialization, and exports to compatible assistants.
These are separate choices: an agent can use the CLI without ULP's web AI, and an MCP client uses its own model. See AI Features and the generated MCP setup.
The chapter-based ULP User Manual is the authoritative documentation.
- How-To Guide
- User Interfaces
- SQLite Guide
- Input and Output Formats
- AI, Agent Skills, and MCP
- CLI and Configuration Reference
- Deployment and Packaging
- Troubleshooting
Exact runtime-generated provider, writer, CLI, configuration, MCP, ADO.NET, Scriban, automation, and SQLite inventories are under generated reference.
| Area | Purpose |
|---|---|
Documentation/UserGuide |
Current ULP 1.0 user manual |
Documentation |
Documentation entry point and legacy-reference notice |
Configuration |
Configuration examples |
Extensions |
Extension and plugin information |
Samples |
Sample inputs and queries |
Releases |
Versioned release archives, checksums, and expanded review packages |
The Releases directory is populated locally by the release workflow for review; its presence does not by itself mean a public release has been approved. Verify the selected archive's checksum, license, signing status, and release notes before distribution.
See LICENSE. Third-party notices and component licenses are documented separately in the manual's legal source material.