{"id":51451342,"url":"https://github.com/tonycletus/docshift","last_synced_at":"2026-07-05T21:01:18.857Z","repository":{"id":365767938,"uuid":"1272781220","full_name":"tonycletus/docshift","owner":"tonycletus","description":"Free, local-first PDF tools that run in the browser with no uploads, database, or external API.","archived":false,"fork":false,"pushed_at":"2026-06-18T19:55:07.000Z","size":427,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-18T20:28:10.715Z","etag":null,"topics":["browser","local-first","no-upload","pdf","pdf-tools","privacy","react","typescript","vite","wasm"],"latest_commit_sha":null,"homepage":"https://github.com/tonycletus/docshift","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tonycletus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":null,"dco":null,"cla":null}},"created_at":"2026-06-17T23:44:19.000Z","updated_at":"2026-06-18T19:55:16.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/tonycletus/docshift","commit_stats":null,"previous_names":["tonycletus/docshift"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/tonycletus/docshift","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tonycletus%2Fdocshift","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tonycletus%2Fdocshift/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tonycletus%2Fdocshift/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tonycletus%2Fdocshift/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tonycletus","download_url":"https://codeload.github.com/tonycletus/docshift/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tonycletus%2Fdocshift/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35168795,"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-07-05T02:00:06.290Z","response_time":100,"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":["browser","local-first","no-upload","pdf","pdf-tools","privacy","react","typescript","vite","wasm"],"created_at":"2026-07-05T21:01:18.196Z","updated_at":"2026-07-05T21:01:18.837Z","avatar_url":"https://github.com/tonycletus.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DocShift\n\n**Private PDF tools. No uploads.**\n\nFree and open source for browser, desktop, and CLI.\n\nDocShift gives you practical PDF tools for the web app, command line, and desktop. Merge, split, compress, convert, OCR scanned pages, prepare fillable forms, protect, and organize PDFs without accounts, uploads, subscriptions, tracking, or external APIs.\n\n## Tools\n\n- Compress PDF with distinct Safe, Balanced, and Smaller modes.\n- Merge, split, reorder, rotate, delete, and extract PDF pages.\n- Add page numbers and watermarks.\n- Make scanned PDFs searchable in the browser and desktop app, with plain text export when needed.\n- Prepare fillable forms by detecting likely labels, blank lines, and checkbox cues.\n- Protect PDFs with a password and unlock PDFs when the password is known.\n- Convert between PDF, JPG, Word, PowerPoint, and Excel where browser-side conversion produces a useful result.\n- Extract embedded PDF text from the CLI for scriptable workflows.\n\n## Why DocShift\n\n- Your files never leave your device.\n- No account, no email, no sign-up wall.\n- No watermarks on output.\n- No external API calls for the document tools.\n- Static, client-heavy architecture - easy to inspect, easy to host anywhere.\n\n## Local Development\n\n```bash\nnpm install\nnpm run dev\n```\n\n## CLI\n\nInstall the command line tool:\n\n```bash\nnpm install -g @tonycletus/docshift\n```\n\nVerify it:\n\n```bash\ndocshift version\ndocshift doctor\n```\n\nRun a PDF command:\n\n```bash\ndocshift compress input.pdf --preset balanced -o output.pdf\ndocshift merge a.pdf b.pdf -o combined.pdf\ndocshift protect input.pdf -p strong-password -o locked.pdf\n```\n\nEvery command supports `--help`. Full CLI docs live at https://docshift.tonycletus.com/cli.\n\n## Checks\n\n```bash\nnpm run lint\nnpm run build\n```\n\n## Deployment\n\nDocShift is a static, client-side app and can be hosted on any static-friendly host.\n\n- Install: `npm install`\n- Build: `npm run build`\n- Preview locally: `npm run preview`\n\n## Author\n\nBuilt by Tony Cletus - [@iamtonycletus](https://x.com/iamtonycletus) - [github.com/tonycletus](https://github.com/tonycletus).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftonycletus%2Fdocshift","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftonycletus%2Fdocshift","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftonycletus%2Fdocshift/lists"}