{"_id":"@attainblelabs/tailor","name":"@attainblelabs/tailor","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.4":{"name":"@attainblelabs/tailor","version":"0.1.4","description":"Ink-powered TUI for tailoring workflows, starting with resume tailoring.","license":"MIT","type":"module","repository":{"type":"git","url":"git+https://github.com/attainblelabs/tailor.git"},"homepage":"https://github.com/attainblelabs/tailor#readme","bugs":{"url":"https://github.com/attainblelabs/tailor/issues"},"keywords":["resume","tui","ink","pdf","codex"],"bin":{"tailor":"dist/cli/main.js"},"engines":{"node":">=20"},"publishConfig":{"access":"public"},"scripts":{"build":"tsup","check":"tsc --noEmit","check:unused":"tsc --project tsconfig.unused.json --noEmit","check:architecture":"node scripts/check-architecture.mjs","dev":"node --import tsx src/cli/main.ts","reset":"node --import tsx src/cli/main.ts reset --force","doctor":"node --import tsx src/cli/main.ts doctor","doctor:smoke":"node scripts/doctor-smoke.mjs","pack:smoke":"node scripts/pack-smoke.mjs","pack:dry-run":"npm run pack:smoke","release:check":"npm run check && npm run check:unused && npm run check:architecture && npm test && npm run build && npm run doctor:smoke && npm run pack:smoke","test":"vitest run --no-file-parallelism","test:acceptance":"vitest run tests/acceptance.test.ts"},"dependencies":{"@napi-rs/canvas":"^0.1.97","@openai/codex":"^0.118.0","@openai/codex-sdk":"^0.118.0","@react-pdf/renderer":"^4.3.2","better-sqlite3":"^12.8.0","commander":"^14.0.3","env-paths":"^4.0.0","ink":"^6.8.0","open":"^11.0.0","pdfjs-dist":"^5.6.205","react":"^19.2.4","zod":"^4.3.6"},"devDependencies":{"@types/better-sqlite3":"^7.6.13","@types/node":"^25.5.2","@types/react":"^19.2.14","dependency-cruiser":"^17.3.10","tsup":"^8.5.1","tsx":"^4.21.0","typescript":"^6.0.2","vitest":"^4.1.2"},"gitHead":"02ca7aae1bdbda5b2d07c063bdf4f80973bfccb0","_id":"@attainblelabs/tailor@0.1.4","_nodeVersion":"22.20.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-2zTrbT7kanfK7MY/TwwSlg+Yo0ulFVxue3HLRd3sIKan5TwEDeKWWF5Np+z4tfjpN9uGWBYwZgvU/SlbZKZ9gw==","shasum":"0b5e5834040fa08aaca74d40b1090c879f7fb44a","tarball":"https://registry.npmjs.org/@attainblelabs/tailor/-/tailor-0.1.4.tgz","fileCount":9,"unpackedSize":3531421,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGD0Qus19WuzH32YXU7uWfs85CzFc/lxLL/nnnGDblQZAiAM4s5mCQZuX2ze5MNb+FDV5odggUJ8ZOyylak9MY3M9A=="}]},"_npmUser":{"name":"temurb","email":"temurbakhriddinov@gmail.com"},"directories":{},"maintainers":[{"name":"temurb","email":"temurbakhriddinov@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tailor_0.1.4_1775907373158_0.27132020860062633"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-11T11:36:13.011Z","0.1.4":"2026-04-11T11:36:13.360Z","modified":"2026-04-11T11:36:13.645Z"},"maintainers":[{"name":"temurb","email":"temurbakhriddinov@gmail.com"}],"description":"Ink-powered TUI for tailoring workflows, starting with resume tailoring.","homepage":"https://github.com/attainblelabs/tailor#readme","keywords":["resume","tui","ink","pdf","codex"],"repository":{"type":"git","url":"git+https://github.com/attainblelabs/tailor.git"},"bugs":{"url":"https://github.com/attainblelabs/tailor/issues"},"license":"MIT","readme":"# Tailor\n\nTailor is a terminal UI for tailoring workflows.\n\nToday Tailor ships one type: resume tailoring. More tailor types are coming.\n\n## Install\n\nTailor requires Node.js 20+.\n\n```bash\nnpm install -g @attainblelabs/tailor\ntailor\n```\n\nRun without a global install:\n\n```bash\nnpx @attainblelabs/tailor\n```\n\n## Tailor Types\n\n- `Resume` generates tailored resume PDFs from pasted job descriptions or job-posting URLs.\n- More tailor types are coming.\n\n## Quick Start\n\n```bash\ntailor\n```\n\nOn first launch, Tailor walks through:\n\n1. provider setup and auth/history configuration\n2. creating the initial immutable master resume version\n3. optionally importing a text-based local PDF before saving version 1\n\nAfter onboarding, use the `Resume` type to paste a job description or job-posting URL, generate a tailored draft, preview it, and export the final PDF.\n\n## Commands\n\n```bash\ntailor\ntailor doctor\ntailor reset --force\ntailor provider list\ntailor provider current\ntailor provider use codex\ntailor provider use local --backend ollama --model nemotron-3-nano:4b\ntailor auth status\ntailor login\ntailor logout\n```\n\nNotes:\n\n- `tailor` requires an interactive TTY.\n- Use `tailor doctor` in non-interactive environments.\n- `tailor reset --force` removes the Tailor-owned data root without signing out providers.\n\n## Providers\n\n- `codex` is the default authenticated provider and defaults to `gpt-5.4-mini`.\n- `local` supports OpenAI-compatible local backends via Ollama or LM Studio.\n- Ollama defaults to `http://127.0.0.1:11434/v1` and recommends `nemotron-3-nano:4b`.\n- LM Studio defaults to `http://127.0.0.1:1234/v1` and recommends `nvidia/nemotron-3-nano-4b`.\n\nLocal-provider context size must be configured in Ollama or LM Studio directly. Tailor does not set local context windows through the OpenAI-compatible API.\n\n## Development\n\n```bash\nnpm install\nnpm run dev\nnpm test\nnpm run build\nnpm run release:check\n```\n\nAdditional project docs:\n\n- [Architecture](./docs/ARCHITECTURE.md)\n- [Testing](./docs/TESTING.md)\n","readmeFilename":"README.md","_rev":"1-56fb157987d2bc94d7825fbd537008ba"}