[package]
edition = "2021"
rust-version = "1.95"
name = "scrybe"
version = "2.2.0"
authors = ["Mathews Tom"]
build = "build.rs"
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Local-first meeting recording, transcription, and notes for macOS."
homepage = "https://github.com/Mathews-Tom/scrybe"
readme = "README.md"
keywords = [
"meeting",
"transcription",
"whisper",
"local-first",
"privacy",
]
categories = [
"multimedia::audio",
"command-line-utilities",
]
license = "Apache-2.0"
repository = "https://github.com/Mathews-Tom/scrybe"
[package.metadata.dist]
dist = true
default-features = true
[features]
agent-access = [
"scrybe-application/agent-access",
"tokio/io-std",
]
cli-shell = [
"dep:scrybe-widgets",
"dep:tray-icon",
"dep:crossbeam-channel",
"dep:core-foundation",
"dep:png",
"dep:objc2",
"dep:objc2-app-kit",
"dep:objc2-foundation",
]
default = [
"cli-shell",
"hook-git",
"mic-capture",
"system-capture-mac",
"encoder-opus",
"whisper-local",
"llm-openai-compat",
]
encoder-opus = ["scrybe-core/encoder-opus"]
hook-git = ["scrybe-core/hook-git"]
llm-openai-compat = [
"scrybe-core/openai-compat",
"scrybe-application/notes-generation",
]
mic-capture = [
"scrybe-capture-mic/live-mic",
"scrybe-application/mic-capture",
]
stt-sherpa = [
"scrybe-core/stt-sherpa",
"scrybe-application/stt-sherpa",
]
system-capture-mac = [
"scrybe-capture-mac/core-audio-tap",
"scrybe-capture-mac/system-capture-sck",
"tokio/process",
]
whisper-local = [
"scrybe-core/whisper-local",
"scrybe-application/whisper-local",
]
[[bin]]
name = "scrybe"
path = "src/main.rs"
doc = false
[[test]]
name = "bench_stt"
path = "tests/bench_stt.rs"
[[test]]
name = "doctor_onboarding"
path = "tests/doctor_onboarding.rs"
[[test]]
name = "mcp_stdio"
path = "tests/mcp_stdio.rs"
[[test]]
name = "repair_sigkill"
path = "tests/repair_sigkill.rs"
[[test]]
name = "shell_feature_gate"
path = "tests/shell_feature_gate.rs"
[dependencies.anyhow]
version = "1"
[dependencies.async-trait]
version = "0.1"
[dependencies.chrono]
version = "0.4"
features = [
"clock",
"serde",
"std",
]
default-features = false
[dependencies.clap]
version = "4.5"
features = ["derive"]
[dependencies.crossbeam-channel]
version = "0.5"
optional = true
[dependencies.directories]
version = "5"
[dependencies.futures]
version = "0.3"
features = [
"std",
"async-await",
]
default-features = false
[dependencies.png]
version = "0.18"
optional = true
[dependencies.scrybe-application]
version = "=2.2.0"
package = "scrybe-meeting-application"
[dependencies.scrybe-capture-mac]
version = "=2.2.0"
package = "scrybe-meeting-capture-mac"
[dependencies.scrybe-capture-mic]
version = "=2.2.0"
package = "scrybe-meeting-capture-mic"
[dependencies.scrybe-core]
version = "=2.2.0"
package = "scrybe-meeting-core"
[dependencies.scrybe-widgets]
version = "=2.2.0"
optional = true
[dependencies.serde]
version = "1"
features = [
"derive",
"rc",
]
[dependencies.serde_json]
version = "1"
[dependencies.tokio]
version = "1.42"
features = [
"fs",
"io-util",
"macros",
"rt-multi-thread",
"signal",
"sync",
"time",
"macros",
"rt-multi-thread",
"signal",
"fs",
"io-util",
"sync",
"time",
]
default-features = false
[dependencies.toml]
version = "0.8"
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[dependencies.tray-icon]
version = "0.23"
optional = true
[dependencies.url]
version = ">=2.5.4, <2.6"
default-features = false
[dev-dependencies.pretty_assertions]
version = "1"
[dev-dependencies.tempfile]
version = "3"
[target.'cfg(target_os = "macos")'.dependencies.core-foundation]
version = "0.10"
optional = true
[target.'cfg(target_os = "macos")'.dependencies.objc2]
version = "0.6"
optional = true
[target.'cfg(target_os = "macos")'.dependencies.objc2-app-kit]
version = "0.3"
features = [
"std",
"NSAccessibility",
"NSApplication",
"NSAccessibilityProtocols",
"NSAppearance",
"NSButton",
"NSBox",
"NSButtonCell",
"NSColor",
"NSControl",
"NSEvent",
"NSGraphics",
"NSResponder",
"NSPanel",
"NSScreen",
"NSText",
"NSTextField",
"NSView",
"NSWindow",
"NSWorkspace",
]
optional = true
default-features = false
[target.'cfg(target_os = "macos")'.dependencies.objc2-foundation]
version = "0.3"
features = [
"std",
"NSArray",
"NSDate",
"NSDictionary",
"NSObject",
"NSObjCRuntime",
"NSRunLoop",
"NSString",
"NSValue",
]
optional = true
default-features = false
[target."cfg(unix)".dependencies.libc]
version = "0.2"
[target."cfg(windows)".dependencies.windows-sys]
version = "0.59"
features = [
"Win32_Foundation",
"Win32_Storage_FileSystem",
"Win32_System_Threading",
]
[lints.clippy]
expect_used = "warn"
panic = "warn"
unwrap_used = "warn"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.clippy.nursery]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
unsafe_code = "deny"