Conversation
- pip install inkbox-mail → inkbox - from inkbox_mail → from inkbox.mail - @inkbox/mail → @inkbox/sdk - Python examples: async/await → synchronous (matches actual SDK) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Python: inkbox.phone package with InkboxPhone client, 5 models, 4 resource classes (numbers, calls, transcripts, webhooks) - TypeScript: @inkbox/sdk/phone subpath export with matching resources - 16 methods covering: provision/release numbers, place/list/get calls, list transcripts, search transcripts, webhook CRUD Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Python: uv sync --extra dev installs ruff/pytest/pytest-cov - TypeScript: remove cache config (no package-lock.json) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…mode - stream_url now falls back to phone number's default_stream_url - call_mode renamed to pipeline_mode to match actual API field name - Updated both Python and TypeScript SDKs + tests Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
we should either make this a full read me or remove it? but probably make it a detailed docs. and then we would prob also need to add one for type script
There was a problem hiding this comment.
# Provision and link channels in one call each
identity.assign_mailbox(display_name="Support Bot")
identity.assign_phone_number(type="toll_free")
to me assign sounds like we are attaching an existing object. maybe something like "provision"?
There was a problem hiding this comment.
updated in commit 58c2743
Below are updated channel methods for AgentIdentity:
create_mailbox(display_name=) — create + link a new mailbox
assign_mailbox(mailbox_id) — link an existing mailbox
unlink_mailbox() — unlink (doesn't delete)
provision_phone_number(type=, state=) — provision + link a new phone number
assign_phone_number(phone_number_id) — link an existing phone number
unlink_phone_number() — unlink (doesn't release)
| // Place an outbound call | ||
| await identity.placeCall({ | ||
| toNumber: "+18005559999", | ||
| streamUrl: "wss://my-app.com/voice", | ||
| }); |
There was a problem hiding this comment.
lets move this under all mail methods and add then add examples for reading / searching transcripts for consistency with mail (same for python)
There was a problem hiding this comment.
There was a problem hiding this comment.
Removed in the current README: https://github.com/VectorlyApp/inkbox/tree/phone
| print(mailbox.email_address) | ||
| print(phone.number) | ||
|
|
There was a problem hiding this comment.
| print(mailbox.email_address) | |
| print(phone.number) |
There was a problem hiding this comment.
Updated: https://github.com/VectorlyApp/inkbox/tree/phone/python, https://github.com/VectorlyApp/inkbox/tree/phone/typescript
Note you can still retrieve org-level mailboxes or phones
python/README.md
Outdated
| # Iterate inbox (paginated automatically) | ||
| for msg in identity.messages(): |
There was a problem hiding this comment.
how does this work? iterate through all messages in the mailbox ever? should we have some methods like
unread_count? or only parse those that are unread? also can the agent pull targeted messages from a thread for example?
There was a problem hiding this comment.
Updated comment:
Rename messages(page_size=, direction=) to emails(). Instead add get_unread_emails(), get_emails_by_thread()
There was a problem hiding this comment.
Renamed messages(page_size=, direction=) to iter_emails(page_size?, direction?) to clarify it's an iterator for emails in commit 58c2743
There was a problem hiding this comment.
Added iterUnreadEmails(pageSize?, direction?) and markEmailsRead(messageIds) in commit 94db06f
There was a problem hiding this comment.
Added get_thread(self, thread_id: str) in commit d2ec5fd
python/README.md
Outdated
| print(hook.secret) # save this | ||
| print(call.status, call.rate_limit.calls_remaining) | ||
|
|
||
| # Full-text search across transcripts |
There was a problem hiding this comment.
shodul also probably be able to get transcript of a call by id
There was a problem hiding this comment.
Updated comment:
Remove search_transcripts(q, party=, limit=), and transcripts(call_id) already exists
There was a problem hiding this comment.
Updated in commit 581d790
calls→list_callstranscripts→list_transcriptssearch_transcriptsremoved
README.md
Outdated
| # Inkbox SDK | ||
|
|
||
| Official SDKs for the [Inkbox Mail API](https://inkbox.ai) — API-first email for AI agents. | ||
| Official SDKs for the [Inkbox API](https://inkbox.ai) — API-first communication infrastructure for AI agents (email, phone, identities). |
There was a problem hiding this comment.
should this point to docs?




Initial SDK (
v0.1.0)To test and run examples locally