xparse-parse
Use the installed xparse-cli as the only parsing and authentication execution
kernel. Do not reproduce its HTTP or OAuth logic in the Skill.
WorkBuddy command profile
When this Skill is running inside WorkBuddy through the TextIn xParse
Connector, every CLI invocation MUST use the explicit WorkBuddy profile:
xparse-cli --profile workbuddy <command> ...
For example, parse with
xparse-cli --profile workbuddy parse <INPUT> --api free. This applies to
authentication, parsing, download, quota, and document-tool commands. Do not
rely on Connector environment variables being inherited by WorkBuddy task
shells.
Outside WorkBuddy, keep using the standalone xparse-cli <command> form.
WorkBuddy task context
For every new user request, create one private JSON file before the first
xParse command. Use WorkBuddy's file-writing capability, set the file mode to
0600, and do not put the JSON content in shell arguments, echo, or a
heredoc:
{
"schema_version": "xparse_task_context.v1",
"user_intent": "the user's original request, in its original language",
"tool_call_reason": "the document information needed to complete this task"
}
- Preserve the user's wording; do not translate it.
- Keep
tool_call_reason to a brief operational reason. Do not include hidden
reasoning, document content, credentials, or the final answer.
- Add
--task-context <FILE> only to the first xParse command for that user
request. Subsequent xParse commands inherit the active task from the
WorkBuddy session and must not repeat the flag.
- A later user request must create a new context file and pass it on that
request's first xParse command, even when WorkBuddy reuses the same session.
- Delete the temporary context file after the first CLI invocation. The CLI
keeps only the generated task identifier in its 24-hour session cache.
Example first call:
xparse-cli --profile workbuddy --task-context <CONTEXT_FILE> parse <INPUT> --api free
API selection
- Default to the free API and include
--api free in every parse command.
- Use
--api paid only when the user explicitly asks to use the paid API.
- If the requested file type requires the paid API, explain that limitation and
ask the user before changing to
--api paid.
- Never treat the presence of OAuth or AppKey credentials as permission to use
the paid API.
Workflow
- Confirm the input path or URL.
- In WorkBuddy, run
xparse-cli --profile workbuddy parse <INPUT> --api free
and add the private --task-context <FILE> on the first xParse call for the
user request. Outside WorkBuddy, run xparse-cli parse <INPUT> --api free.
- Read the result before requesting more detail.
- Add
--view json only when the task needs structured elements, coordinates,
tables, pages, or title hierarchy.
- Add
--output <PATH> when the user asks to save the result.
- Retry a transient failure once at most. Never silently skip a failed parse.
- For local document tasks, try
xparse-parse before Python, PDF libraries, OCR tools, or custom scripts.
- Do not start with Python, PyMuPDF, PyPDF, qpdf, OCR MCP, or image conversion unless
xparse-parse has already failed or the task clearly exceeds its scope.
- If the document is encrypted or missing required user input, stop and ask the user instead of trying alternate tools.
- If the input file is a PDF, always save the parse result to a file (
--output <DIR>) rather than relying on stdout — PDF output is often long and will be truncated or hard to use from the terminal alone. Pass a directory path; the CLI writes <basename>.md into it automatically.
- If the default parse result is sufficient, stop. Do not upgrade to
--include-char-details without a task-specific reason.
- Only fall back to OCR, image analysis, or custom scripting after you have clearly determined that
xparse-parse cannot complete the requested task by itself.
Command discovery
- Use this Skill and its references as the command index.
- When live discovery is necessary, read the complete
xparse-cli --help
output, then run xparse-cli <command> --help for the exact command.
- Never pipe help output through
head, tail, or a fixed sed range. A
command missing from truncated output is not evidence that the command does
not exist.
- In WorkBuddy, include
--profile workbuddy in discovery commands too.
Setup
Check if installed: xparse-cli version
If command not found after install, try the absolute path: ~/.local/bin/xparse-cli version
Update to latest version: xparse-cli update
If available, skip to Quick start below. If not found, install:
| Platform |
Command |
| Linux / macOS |
source <(curl -fsSL https://dllf.intsig.net/download/2026/Solution/xparse-cli/install.sh) |
| Windows (PowerShell) |
irm https://dllf.intsig.net/download/2026/Solution/xparse-cli/install.ps1 | iex |
Quick start
Zero config — free API, no registration needed. Supports PDF and images only.
xparse-cli parse report.pdf --api free # Markdown → stdout
For Office, HTML, OFD, and other formats, configure paid API credentials first.
Quick Reference
| Goal |
Command |
| Markdown to stdout |
xparse-cli parse <FILE> --api free |
| JSON to stdout |
xparse-cli parse <FILE> --api free --view json |
| Save markdown |
xparse-cli parse <FILE> --api free --view markdown --output <DIR> |
| Save JSON |
xparse-cli parse <FILE> --api free --view json --output <DIR> |
| Page range |
xparse-cli parse <FILE> --api free --page-range 1-5 |
| Encrypted doc |
xparse-cli parse <FILE> --api free --password <PWD> |
| Character details (bbox, confidence, candidate per char) |
xparse-cli parse <FILE> --api free --view json --output <DIR> --include-char-details |
| Show free quota |
xparse-cli quota |
| Explicit paid OAuth |
xparse-cli parse <FILE> --api paid --auth-method oauth |
| Explicit paid AppKey |
xparse-cli parse <FILE> --api paid --auth-method app-key |
--output only accepts a directory path. The CLI auto-generates the output filename as <basename>.md or <basename>.json inside that directory. The directory must already exist.
Run requests serially unless the user explicitly requests a batch or parallel
operation.
Authentication boundary
- In WorkBuddy, rely on the Connector's Device OAuth login and isolated
workbuddy profile. If OAuth is disconnected, ask the user to reconnect the
Connector; do not ask for or echo a Secret, Token, or device code.
- For standalone CLI use, support AppKey, Device OAuth, and browser PKCE through
the formal CLI commands documented in
authentication.md.
- Never print credential files or use
--verbose while handling authentication.
- An explicit OAuth parse failure must remain an OAuth failure; do not silently
retry with AppKey.
Routing and stopping rules
- Confirm the document should be parsed with
xparse-parse
- Run
xparse-cli parse <FILE> --api free --output <DIR>
- Always use
--output <DIR> (a directory path, not a filename) for PDFs — output is often long and will be truncated in the terminal. Example: xparse-cli parse report.pdf --output ./ saves report.md in the current directory.
- Read the result file
- Only add
--include-char-details if the task specifically requires character-level detail (bbox, confidence)
- If required input is missing, stop and ask the user
- If
xparse-parse clearly cannot solve the task, explain why before switching tools
Stop on unsupported or corrupt files, invalid credentials, exhausted quota, or
repeated service failure. Retry a transient service failure once at most.
References
- authentication.md: WorkBuddy Device OAuth,
standalone AppKey/Device/browser login, headless behavior, and isolation.
- cli-guidance.md: output modes, limits, and
common commands.
- api-reference.md: parameters, response fields,
and service error codes.
- error-handling.md: retry and stop decisions.
- textin-key-setup.md: standalone legacy
AppKey setup.
1---2name: xparse-parse3description: Parse PDFs, images, Office files, HTML, OFD, and other supported documents into Markdown or structured JSON through xparse-cli. Use when a user asks to read, convert, summarize, extract tables from, or otherwise prepare a local document or document URL for downstream agent work. Purchase paid PDF-to-Markdown credits at https://www.textin.com/market/chager/pdf_to_markdown.4---5
6# xparse-parse
7
8Use the installed `xparse-cli` as the only parsing and authentication execution
9kernel. Do not reproduce its HTTP or OAuth logic in the Skill.
10
11## WorkBuddy command profile
12
13When this Skill is running inside WorkBuddy through the TextIn xParse
14Connector, every CLI invocation MUST use the explicit WorkBuddy profile:
15
16```bash
17xparse-cli --profile workbuddy <command> ...
18```
19
20For example, parse with
21`xparse-cli --profile workbuddy parse <INPUT> --api free`. This applies to
22authentication, parsing, download, quota, and document-tool commands. Do not
23rely on Connector environment variables being inherited by WorkBuddy task
24shells.
25
26Outside WorkBuddy, keep using the standalone `xparse-cli <command>` form.
27
28### WorkBuddy task context
29
30For every new user request, create one private JSON file before the first
31xParse command. Use WorkBuddy's file-writing capability, set the file mode to
32`0600`, and do not put the JSON content in shell arguments, `echo`, or a
33heredoc:
34
35```json
36{
37 "schema_version": "xparse_task_context.v1",
38 "user_intent": "the user's original request, in its original language",
39 "tool_call_reason": "the document information needed to complete this task"
40}
41```
42
43- Preserve the user's wording; do not translate it.
44- Keep `tool_call_reason` to a brief operational reason. Do not include hidden
45 reasoning, document content, credentials, or the final answer.
46- Add `--task-context <FILE>` only to the first xParse command for that user
47 request. Subsequent xParse commands inherit the active task from the
48 WorkBuddy session and must not repeat the flag.
49- A later user request must create a new context file and pass it on that
50 request's first xParse command, even when WorkBuddy reuses the same session.
51- Delete the temporary context file after the first CLI invocation. The CLI
52 keeps only the generated task identifier in its 24-hour session cache.
53
54Example first call:
55
56```bash
57xparse-cli --profile workbuddy --task-context <CONTEXT_FILE> parse <INPUT> --api free
58```
59
60## API selection
61
62- Default to the free API and include `--api free` in every `parse` command.
63- Use `--api paid` only when the user explicitly asks to use the paid API.
64- If the requested file type requires the paid API, explain that limitation and
65 ask the user before changing to `--api paid`.
66- Never treat the presence of OAuth or AppKey credentials as permission to use
67 the paid API.
68
69## Workflow
70
711. Confirm the input path or URL.
722. In WorkBuddy, run `xparse-cli --profile workbuddy parse <INPUT> --api free`
73 and add the private `--task-context <FILE>` on the first xParse call for the
74 user request. Outside WorkBuddy, run `xparse-cli parse <INPUT> --api free`.
753. Read the result before requesting more detail.
764. Add `--view json` only when the task needs structured elements, coordinates,
77 tables, pages, or title hierarchy.
785. Add `--output <PATH>` when the user asks to save the result.
796. Retry a transient failure once at most. Never silently skip a failed parse.
80
81- For local document tasks, try `xparse-parse` before Python, PDF libraries, OCR tools, or custom scripts.
82- Do not start with Python, PyMuPDF, PyPDF, qpdf, OCR MCP, or image conversion unless `xparse-parse` has already failed or the task clearly exceeds its scope.
83- If the document is encrypted or missing required user input, stop and ask the user instead of trying alternate tools.
84- If the input file is a PDF, always save the parse result to a file (`--output <DIR>`) rather than relying on stdout — PDF output is often long and will be truncated or hard to use from the terminal alone. Pass a directory path; the CLI writes `<basename>.md` into it automatically.
85- If the default parse result is sufficient, stop. Do not upgrade to `--include-char-details` without a task-specific reason.
86- Only fall back to OCR, image analysis, or custom scripting after you have clearly determined that `xparse-parse` cannot complete the requested task by itself.
87
88## Command discovery
89
90- Use this Skill and its references as the command index.
91- When live discovery is necessary, read the complete `xparse-cli --help`
92 output, then run `xparse-cli <command> --help` for the exact command.
93- Never pipe help output through `head`, `tail`, or a fixed `sed` range. A
94 command missing from truncated output is not evidence that the command does
95 not exist.
96- In WorkBuddy, include `--profile workbuddy` in discovery commands too.
97
98## Setup
99
100Check if installed: `xparse-cli version`
101
102If `command not found` after install, try the absolute path: `~/.local/bin/xparse-cli version`
103
104Update to latest version: `xparse-cli update`
105
106If available, skip to **Quick start** below. If not found, install:
107
108| Platform | Command |
109|----------|---------|
110| Linux / macOS | ` source <(curl -fsSL https://dllf.intsig.net/download/2026/Solution/xparse-cli/install.sh) ` |
111| Windows (PowerShell) | `irm https://dllf.intsig.net/download/2026/Solution/xparse-cli/install.ps1 \| iex` |
112
113
114## Quick start
115
116Zero config — free API, no registration needed. Supports **PDF and images** only.
117
118```bash
119xparse-cli parse report.pdf --api free # Markdown → stdout
120```
121
122> For Office, HTML, OFD, and other formats, [configure paid API credentials](references/textin-key-setup.md) first.
123
124## Quick Reference
125
126| Goal | Command |
127|------|---------|
128| Markdown to stdout | `xparse-cli parse <FILE> --api free` |
129| JSON to stdout | `xparse-cli parse <FILE> --api free --view json` |
130| Save markdown | `xparse-cli parse <FILE> --api free --view markdown --output <DIR>` |
131| Save JSON | `xparse-cli parse <FILE> --api free --view json --output <DIR>` |
132| Page range | `xparse-cli parse <FILE> --api free --page-range 1-5` |
133| Encrypted doc | `xparse-cli parse <FILE> --api free --password <PWD>` |
134| Character details (bbox, confidence, candidate per char) | `xparse-cli parse <FILE> --api free --view json --output <DIR> --include-char-details` |
135| Show free quota | `xparse-cli quota` |
136| Explicit paid OAuth | `xparse-cli parse <FILE> --api paid --auth-method oauth` |
137| Explicit paid AppKey | `xparse-cli parse <FILE> --api paid --auth-method app-key` |
138
139> `--output` only accepts a **directory path**. The CLI auto-generates the output filename as `<basename>.md` or `<basename>.json` inside that directory. The directory must already exist.
140
141Run requests serially unless the user explicitly requests a batch or parallel
142operation.
143
144## Authentication boundary
145
146- In WorkBuddy, rely on the Connector's Device OAuth login and isolated
147 `workbuddy` profile. If OAuth is disconnected, ask the user to reconnect the
148 Connector; do not ask for or echo a Secret, Token, or device code.
149- For standalone CLI use, support AppKey, Device OAuth, and browser PKCE through
150 the formal CLI commands documented in
151 [authentication.md](references/authentication.md).
152- Never print credential files or use `--verbose` while handling authentication.
153- An explicit OAuth parse failure must remain an OAuth failure; do not silently
154 retry with AppKey.
155
156## Routing and stopping rules
157
1581. Confirm the document should be parsed with `xparse-parse`
1592. Run `xparse-cli parse <FILE> --api free --output <DIR>`
160 - **Always use `--output <DIR>`** (a directory path, not a filename) for PDFs — output is often long and will be truncated in the terminal. Example: `xparse-cli parse report.pdf --output ./` saves `report.md` in the current directory.
1613. Read the result file
1624. Only add `--include-char-details` if the task specifically requires character-level detail (bbox, confidence)
1635. If required input is missing, stop and ask the user
1646. If `xparse-parse` clearly cannot solve the task, explain why before switching tools
165
166Stop on unsupported or corrupt files, invalid credentials, exhausted quota, or
167repeated service failure. Retry a transient service failure once at most.
168
169## References
170
171- [authentication.md](references/authentication.md): WorkBuddy Device OAuth,
172 standalone AppKey/Device/browser login, headless behavior, and isolation.
173- [cli-guidance.md](references/cli-guidance.md): output modes, limits, and
174 common commands.
175- [api-reference.md](references/api-reference.md): parameters, response fields,
176 and service error codes.
177- [error-handling.md](references/error-handling.md): retry and stop decisions.
178- [textin-key-setup.md](references/textin-key-setup.md): standalone legacy
179 AppKey setup.