aftercalls Sign in

Third-party licenses

aftercalls bundles and depends on open-source components. Each retains its own upstream license. This page is the authoritative manifest; the same list ships inside every installer as THIRD_PARTY_NOTICES alongside the downloaded app.

ffmpeg LGPL v2.1+

The desktop agent bundles a build of ffmpeg as a sidecar executable named ffmpeg-aftercalls. It's used to mix the mic + system-audio tracks into a single playable file and to compress the upload to Opus, so recording isn't a multi-megabyte push on every call.

We bundle LGPL-only builds — no --enable-gpl, no --enable-nonfree. The binary is pulled unmodified from a version-pinned upstream LGPL build per platform, sha256-verified in CI:

The LGPL v2.1 license text is bundled with the downstream build and available upstream at ffmpeg.org/legal.html.

Corresponding source. The exact unmodified upstream sources matching each binary above are byte-for-byte the canonical ffmpeg.org/releases source tarballs (ffmpeg 7.0.2 for the Linux build, ffmpeg 7.1.1 for the Windows + macOS builds). We retain the matching source for at least three years from each binary's release date per LGPL v2.1 §6. For a direct copy, build scripts, intermediate diffs, or anything not listed here, email privacy@aftercalls.io.

Tauri Apache-2.0 / MIT

Tauri 2 — the desktop app framework the aftercalls agent is built on.

Svelte + SvelteKit MIT

Svelte / SvelteKit — the UI framework for the agent and the web portal.

Rust crates Apache-2.0 / MIT / ISC

The backend and the agent depend on a number of Rust crates including but not limited to: axum, tokio, sqlx, serde, reqwest, anyhow, uuid, chrono, aws-sdk-s3, tauri-plugin-*. All dual-licensed Apache-2.0 / MIT (or ISC) — no copyleft obligations.

aes-gcm Apache-2.0 / MIT

The backend uses the aes-gcm crate from the RustCrypto project to encrypt stored OAuth credentials for customer-chosen integrations (e.g. Zoho CRM) at rest. Pure-Rust implementation, no FFI.

async_zip MIT

The backend uses the async_zip crate to assemble the per-user data export ZIP archive on the fly. It writes ZIP64 + data-descriptor entries straight into a streaming sink, so a multi-gigabyte archive is uploaded to object storage in 8 MiB chunks instead of being staged on disk first.

windows-rs Apache-2.0 / MIT

The windows crate is used on Windows-only builds of the agent to enumerate active WASAPI capture sessions (auto-detect call start). Microsoft's official Rust bindings.

Geist + Geist Mono SIL OFL 1.1

Geist from Vercel. Self-hosted on our own origin so the agent and portal never phone a third-party font CDN. The OFL 1.1 license text ships with the font files.

marked MIT

The web portal uses marked for rendering the Terms of Service + Privacy Policy markdown in the acceptance-gate flow.

TipTap MIT

TipTap powers the in-app notes editor — the rich-text box where you jot notes during and after a call. Ships with both the desktop agent and the web portal.

ProseMirror MIT

ProseMirror is the underlying editor toolkit TipTap is built on. Pulled in transitively — same permissive license.

tiptap-markdown MIT

tiptap-markdown provides the markdown parse/serialize pass so notes round-trip cleanly between the editor and the stored notes column on each call.

tauri-plugin-autostart Apache-2.0 / MIT

tauri-plugin-autostart powers the "Launch at sign-in" toggle in the desktop agent's Settings, so aftercalls can be ready in your system tray as soon as you sign in without a manual launch.

rusqlite MIT

rusqlite backs the desktop agent's local list of apps that have used your microphone, so you can choose which ones should auto-record. The list is stored only on your computer and never sent to our servers.

js-yaml MIT

The web portal build uses js-yaml to parse structured content at compile time. It is not shipped to end-user browsers as a runtime dependency of the static bundle.

argon2 Apache-2.0 / MIT

The backend uses the argon2 crate from RustCrypto to hash account passwords before storage.

jsonwebtoken MIT

The backend uses jsonwebtoken to sign and verify the short-lived tokens that keep app sessions scoped to the signed-in user and organization.

openidconnect Apache-2.0 / MIT

The backend uses openidconnect to implement customer-configured single sign-on flows.

reqwest Apache-2.0 / MIT

The backend and desktop agent use reqwest for outbound HTTPS requests to aftercalls APIs and customer-enabled integrations.

sqlx Apache-2.0 / MIT

The backend uses sqlx for compile-checked PostgreSQL queries and migrations.

Desktop notification crates Apache-2.0 / MIT / MIT

The desktop agent uses notify-rust on Linux, mac-notification-sys on macOS, and tauri-winrt-notification on Windows to show local call-detection and action notifications.

Tauri plugins Apache-2.0 / MIT

The desktop agent uses Tauri 2 plugins for opener, notification, global shortcut, file-system access, clipboard, dialog, updater, process control, single-instance handling, and autostart support. These ship from the tauri-apps plugins workspace.

TipTap editor extensions MIT

The in-app notes editor uses TipTap link, placeholder, and starter-kit extensions so links, empty-note prompts, and common rich-text editing commands behave consistently in the agent and portal.

Sentry SDKs MIT

The backend, web portal, and desktop agent can use sentry-rust and @sentry/browser for DSN-gated diagnostic error reporting when configured.

swift-bridge Apache-2.0 / MIT

The desktop agent uses swift-bridge on macOS to bridge a small Swift shim (the system-audio loopback recorder) into the Rust agent.

coreaudio-sys Apache-2.0 / MIT

The desktop agent uses coreaudio-sys on macOS to observe audio-input device state through the CoreAudio HAL (which apps are currently using the microphone).

The operational sub-processors aftercalls uses (cloud hosting, transcription, summarization, email) aren't listed here — they aren't licensed components we redistribute. See the current Privacy Policy for how call data flows through them at the category level.

Zoom, Microsoft Teams, Slack, Obsidian, and Discord are trademarks of their respective owners. aftercalls is not affiliated with, endorsed by, or sponsored by any of them.