General Legal
pilotctl appstore install io.pilot.generallegalAbout General Legal
General Legal is a Y Combinator-backed law firm. This app puts a licensed attorney and a Delaware filing desk behind your agent — contract review and company formation, in one namespace.
Nothing here needs a browser. Formation works the moment you install; contract review needs a General Legal account, which the agent can open itself in three calls.
Company formation — nothing to set up
No account, no key, no configuration. Call generallegal.formation_options and it works on a fresh install.
You will still need to pay: formation_start_llc and formation_start_c_corp return a payment link, and the founder pays there. Use the founder's real details — this files an actual Delaware company.
Contract review — sign up from the agent
1. generallegal.signup_terms returns the engagement letter (PDF). Read it: accepting it engages General Legal as your company's counsel. 2. generallegal.signup with the company name, a contact email you can read, and a US billing city/state/ZIP. A six-digit code is emailed. 3. generallegal.signup_complete with the signup_id, the code and engagement_letter_accepted: true.
General Legal issues one API key. The app saves it on this host and sends it on every later call. It never appears in the reply, and you don't need to restart. Verify with generallegal.deals_list. The key scopes you to your own General Legal organization and is never sent to the formation service.
Already have a key from https://portal.general.legal/api-keys? Save it with generallegal.set_key '{"api_key":"glk_..."}'. Lost it? Use generallegal.key_recover, then generallegal.key_recover_complete. This issues a replacement and revokes the old key.
What it costs
Contract review is flat-fee, with no hourly billing and no minimums. The fee covers every turn through signature, including negotiation with the counterparty.
| Work | Price | | --- | --- | | Contract, 3 pages or fewer | $250 | | Contract, 3-50 pages | $500 | | Contract, 50+ pages | $10 per page | | Drafting from scratch | $2,000 | | Delaware LLC | $190 instant / $210 standard / $260 next-day / $310 same-day | | Delaware C-corp | $218 standard / $268 next-day / $318 same-day |
What the app does
Company formation — formation_options (free), formation_start_llc (paid), formation_start_c_corp (paid), formation_status, formation_update, formation_documents (free).
Contract review — deal_open (paid), document_upload (paid), thread_post (paid, covered by the matter's flat fee), plus deals_list, deal_get, thread_get, contracts_list, contract_get, version_download_link (free) and upload_begin, upload_chunk, upload_abort (free — a document is staged in chunks because a single call cannot carry a file).
Account — signup_terms, signup, signup_resend, signup_complete, key_recover, key_recover_complete, set_key (all free; signing up costs nothing until you open a matter).
What costs money
Five methods spend real money and will not warn you first: formation_start_llc, formation_start_c_corp, deal_open, document_upload and thread_post. Every other method is free. generallegal.help lists them under billable_methods with the price.
Plan & limits
Methods · 26
generallegal.formation_optionsgenerallegal.formation_start_llcgenerallegal.formation_start_c_corpgenerallegal.formation_statusgenerallegal.formation_updategenerallegal.formation_documentsgenerallegal.signup_termsgenerallegal.signupgenerallegal.signup_resendgenerallegal.signup_completegenerallegal.key_recovergenerallegal.key_recover_completegenerallegal.set_keygenerallegal.deals_listgenerallegal.deal_opengenerallegal.deal_getgenerallegal.thread_getgenerallegal.thread_postgenerallegal.contracts_listgenerallegal.contract_getgenerallegal.document_uploadgenerallegal.version_download_linkgenerallegal.upload_begingenerallegal.upload_chunkgenerallegal.upload_abortgenerallegal.helpFull usage demo
When a contract needs a licensed attorney to review, redline or draft it, or an agent needs its own Delaware company. Formation needs no account; contract review needs one, which the agent opens itself.
pilotctl appstore call io.pilot.generallegal generallegal.formation_options '{"entity_type":"llc"}'{"options":[{"filing_speed":"instant","total_cents":19000},{"filing_speed":"standard","total_cents":21000}]}Free, and it needs no account or key at all — the fastest way to confirm the app works. Contract review needs an account; the agent opens one itself with generallegal.signup (see the examples).
Worked examples
pilotctl appstore call io.pilot.generallegal generallegal.formation_start_llc '{"filing_speed":"standard","company_name":"NewCo LLC","founder":{"full_name":"Ada Lovelace","email":"ada@example.com"},"principal_address":{"street":"1 Main St","city":"Dover","state":"DE","postal_code":"19901"},"ai_agent_description":"Procurement agent","authority_limits":"No commitments above $5,000 without sign-off","contract_threshold":"$5,000"}'{"formation_id":"f-...","payment_url":"https://...","status":"awaiting_payment"}BILLABLE - files a real company. $190 instant / $210 standard / $260 next-day / $310 same-day, paid by the founder at the returned link. No account or key needed to call it. formation_id is shown once.
pilotctl appstore call io.pilot.generallegal generallegal.formation_status '{"formation_id":"f-..."}'{"status":"filed","poll_after_seconds":30} then {"status":"complete"}Free. Repeat only after poll_after_seconds. When complete, generallegal.formation_documents returns short-lived links.
pilotctl appstore call io.pilot.generallegal generallegal.signup '{"company_name":"Acme Inc","contact_email":"legal@acme.com","billing_city":"Dover","billing_state":"DE","billing_zip":"19901"}'{"signup_id":"...","status":"...","engagement_letter_url":"https://portal.general.legal/...pdf"}Free. No portal, no browser. A six-digit code is emailed to contact_email — use an address someone actually reads. generallegal.signup_terms returns the same engagement letter URL; read it before accepting, because accepting engages General Legal as the company's counsel.
pilotctl appstore call io.pilot.generallegal generallegal.signup_complete '{"signup_id":"<signup_id>","code":"123456","engagement_letter_accepted":true}'{"client_id":"...","api_key":"saved on this host as GENERAL_LEGAL_API_KEY; sent on every call"}Free. The key is written to $APP/secrets.json and redacted from the reply; every later call carries it with no restart. Already have a portal key? generallegal.set_key '{"api_key":"glk_..."}'. Lost it? generallegal.key_recover then key_recover_complete (revokes the old key).
pilotctl appstore call io.pilot.generallegal generallegal.deal_open '{"initial_request":"Please review this mutual NDA. We are the disclosing party; flag anything unusual in the confidentiality term.","deal_name":"Acme mutual NDA"}'{"deal_id":"d-9f3...","status":"open"}BILLABLE - flat fee per contract: $250 (<=3 pages), $500 (3-50), $10/page (50+), $2,000 to draft. Covers every turn through signature. Keep the deal_id.
pilotctl appstore call io.pilot.generallegal generallegal.upload_begin '{"file_name":"nda.docx","content_type":"application/vnd.openxmlformats-officedocument.wordprocessingml.document","total_bytes":3145728,"sha256":"<sha256 of the file>"}'{"blob_id":"a1b2...","max_chunk_bytes":524288,"next_seq":0}Then generallegal.upload_chunk with seq 0,1,2... and base64 of at most max_chunk_bytes raw bytes. The last returns complete:true. Finally generallegal.document_upload with the blob_id and deal_id (BILLABLE).
Good to know
- Two halves, different requirements. Company formation needs no account and no key. Contract review needs a General Legal account — open it from the agent with generallegal.signup, then generallegal.signup_complete with the emailed code.
- Signup engages a law firm: signup_complete requires engagement_letter_accepted:true. Read the letter from generallegal.signup_terms first, and only accept on behalf of a company that has authorised it.
- Five methods spend money: deal_open and document_upload are flat-fee per contract ($250/$500/$10-per-page/$2,000); formation_start_llc and formation_start_c_corp file a real company ($190-$318); thread_post is covered by the matter's fee.
- A document cannot ride in one call. Use upload_begin then upload_chunk (<=512 KiB raw each) and pass the blob_id. A blob is single-use and dropped once sent.
- Matters reach a real attorney and formations file a real company. Neither is a sandbox - confirm before calling a billable method.
- Contract-review limits are per organization: 120 reads/min, 25 new matters/day, 50 uploads/day. Honour Retry-After on a 429.
Next
generallegal.formation_options to price a company, or generallegal.signup to open the account contract review needs.generallegal.help lists every method and marks exactly which ones cost money.
What’s New
- Contract review without the portal: the agent opens its own General Legal account with generallegal.signup and generallegal.signup_complete (emailed code + engagement letter).
- The issued key is saved on the host, never shown, and used with no restart. generallegal.set_key saves a portal key; key_recover replaces a lost one.
- Calls that need an account now say how to get one instead of failing with a bare 401.
- Now runs on macOS and Linux, Intel and ARM (0.1.0 was Linux x86-64 only).
- Contract review: matters, lawyer thread, document upload and released-version downloads.
- Delaware company formation: pricing, LLC and C-corp filing, status and documents — no account needed.
- Bring your own General Legal API key for contract review; it never reaches the formation service.