Last updated: March 15, 2026

To use Briar offline, install the app from F-Droid or Google Play, enable Bluetooth or Wi-Fi Direct in Settings, and add contacts by scanning QR codes or exchanging contact links while physically nearby. Briar then forms an encrypted mesh network between devices, delivering messages without any internet connection. For a technical deep explore Briar’s architecture and protocol design, see the Briar Messenger Offline Mesh Review.

Table of Contents

Prerequisites

Before you begin, make sure you have the following ready:

Step 1 - Install ation and Initial Setup

Briar is available for Android through the F-Droid repository and Google Play Store. For developers who prefer building from source, the project provides instructions for compiling the APK:

Clone the Briar repository
git clone https://code.briarproject.org/briar/briar.git
cd briar

Build the Android APK
./gradlew :briar-android:assembleDebug

Install on connected device
adb install briar-android/build/outputs/apk/debug/briar-android-debug.apk

After installation, creating an identity requires establishing a strong passphrase. This passphrase encrypts your local database, protecting your messages and contacts if your device falls into unauthorized hands. Unlike cloud-based services, Briar stores everything locally by default.

Step 2 - Adding Contacts Offline

Briar contact addition works entirely offline through QR codes or manual key exchange. When adding a contact, both devices generate temporary Bluetooth or Wi-Fi Direct connections to exchange cryptographic keys.

The process involves these steps:

  1. Open Briar on both devices
  2. Navigate to Contacts → Add Contact
  3. Select the connection method (QR code or link)
  4. For QR mode, scan the other device’s code
  5. For link mode, copy and paste the contact URL

The contact URL contains your public key and connection metadata. You can share this URL through any channel, email, USB drive, or even printed paper. The URL itself reveals no sensitive information; only the holder can complete the pairing process.

Step 3 - Configure Offline Transport

Briar’s offline capabilities depend on proper configuration of transport protocols. The app supports three transport mechanisms with distinct characteristics.

Bluetooth Mode

Bluetooth offers the lowest bandwidth but works at greater distances than Wi-Fi Direct, typically up to 100 meters in optimal conditions. Enable Bluetooth transport through Settings → Connectivity → Bluetooth. The app will automatically discover and connect to nearby Briar users when Bluetooth is active.

Verify Bluetooth is enabled on your Android device
Briar automatically manages Bluetooth discovery
No command-line configuration required

Bluetooth works particularly well in scenarios where devices are scattered across a building or outdoor area. The mesh networking capability means messages can hop through multiple devices to reach their destination.

Wi-Fi Direct Mode

Wi-Fi Direct provides higher bandwidth at shorter ranges, typically 200 meters under ideal conditions. Enable this through Settings → Connectivity → Wi-Fi Direct. Unlike Bluetooth, Wi-Fi Direct allows direct device-to-device connections without the pairing overhead.

Wi-Fi Direct excels for scenarios requiring faster message synchronization, such as sharing media or larger text messages between a small group.

Internet (Tor) Mode

When internet connectivity exists, Tor-based transport provides anonymous routing while maintaining the same end-to-end encryption. Briar includes a built-in Tor client (Obfs4 proxy), requiring no external configuration.

Configure Tor settings through Settings → Connectivity → Internet. You can specify whether Briar uses internet transport automatically, on-demand, or only when Wi-Fi is available.

Step 4 - Mesh Networking Behavior

Understanding mesh propagation helps you optimize network topology for your use case. Briar uses a store-and-forward mechanism where each device stores messages until it can forward them to another connected device.

The protocol delivers messages even with intermittent connectivity, discovers routes automatically, deduplicates messages at each hop, and maintains forward secrecy through rotating session keys.

When multiple devices form a mesh, messages propagate automatically. If you move through an area with Briar users, your device will sync with theirs, picking up any messages transmitted while you were out of range.

Step 5 - Security Tips

For enhanced security when using Briar:

For a full security model analysis including threat model details, see the Briar Messenger Offline Mesh Review.

Advanced Configuration

Customizing Sync Behavior

Power users can adjust synchronization parameters through hidden settings. Access developer options by tapping the version number in Settings repeatedly:

These settings control mesh sync behavior
Higher intervals save battery but reduce mesh responsiveness
briar.sync.interval.foreground=30000
briar.sync.interval.background=300000

Network Timeout Configuration

Adjust connection timeouts based on your use case:

Shorter timeouts for mobile mesh scenarios
briar.transport.timeout=15000

Longer timeouts for fixed infrastructure mesh
briar.transport.timeout=60000

Logging and Debugging

Enable debug logging for troubleshooting:

Access debug logs through Android's logcat
adb logcat | grep org.briarproject

Filter specific components
adb logcat | grep -E "(briar|bramble)"

Step 6 - Integration Possibilities

For developers, Briar offers integration opportunities through its API (available in beta). The messaging API allows programmatic message sending and receiving, enabling automated workflows:

// Pseudocode for API usage (beta)
BriarContext context = briar.connect(identity);
MessageEndpoint endpoint = context.getMessageEndpoint();

endpoint.registerMessageType(Message.TYPE_TEXT,
    (message) -> { processMessage(message); });

This enables bots, automated alerts, and integration with existing systems.

Performance Characteristics

Understanding Briar’s performance helps set expectations:

For large groups, periodic synchronization through Wi-Fi Direct provides better performance than maintaining continuous Bluetooth mesh connections.

Troubleshooting Offline Connectivity

Common issues prevent successful Briar offline operation. Bluetooth discovery failures typically result from disabled services or permission issues on Android.

Verify Bluetooth permissions in Briar settings:

Check Briar's Bluetooth permissions via adb
adb shell pm list permissions | grep -i bluetooth

Grant necessary permissions
adb shell pm grant org.briarproject.android android.permission.BLUETOOTH
adb shell pm grant org.briarproject.android android.permission.ACCESS_FINE_LOCATION

Location access is counter-intuitive but required, Android requires location permission for Bluetooth scanning as a security measure.

Wi-Fi Direct connectivity fails when devices are too far apart or in high-interference environments. Test connectivity by moving devices closer and ensuring no physical obstructions block the connection.

Message Delivery Latency

The store-and-forward architecture means messages don’t arrive immediately. In sparse meshes, propagation may take hours. Check message delivery status:

Via CLI (if available in future versions)
briar-cli message list --status pending

For time-sensitive communications, supplement Briar with Tor-based messaging that provides guaranteed delivery within minutes.

Step 7 - Use Cases and Scenarios

Briar excels in specific situations where connectivity is either unreliable or deliberately restricted.

Journalism and Activism

Briar’s offline capability protects journalists operating in countries where internet censorship occurs. A group of reporters can maintain communication through a local mesh even when national internet infrastructure is shut down. The lack of centralized servers means there’s no “kill switch” to disconnect the network.

Disaster Response

Emergency responders coordinating rescue efforts benefit from Briar’s offline operation. After a major earthquake or hurricane that damages internet infrastructure, emergency coordinators can communicate through local Briar meshes using devices with remaining battery.

Privacy-Conscious Communities

Residential communities prioritizing communication without corporate oversight can establish permanent Briar meshes covering buildings or neighborhoods. This requires regular synchronization events but creates infrastructure independent from ISPs.

Step 8 - Integration with Other Privacy Tools

Combine Briar with complementary privacy tools for protection:

Running Briar alongside Tor Browser
Both maintain separate anonymity models
tor_hidden_service_port=9050
briar_listening_port=9051

Route Briar's Tor traffic through a proxy
if additional anonymity layers are required

Consider the threat model before combining tools. Additional layers increase complexity but may not proportionally increase security.

Performance Tuning for Resource-Constrained Devices

Older or lower-end Android devices may struggle with Briar’s encryption and mesh operations. Optimize performance:

Reduce sync frequency on older devices
adb shell settings put secure briar.sync.interval 300000

Disable debug logging to free memory
adb shell settings put secure briar.debug.logging false

Limit active connections
adb shell settings put secure briar.max_peers 8

These adjustments trade responsiveness for battery life and CPU usage.

Step 9 - Archive and Export

Briar stores all messages locally. To preserve conversations:

Via adb, back up Briar's database
adb pull /data/data/org.briarproject.android/files/db.sqlite \
  ~/briar_backup.db

The database is encrypted; import back with:
adb push ~/briar_backup.db \
  /data/data/org.briarproject.android/files/db.sqlite

Note that message export in standard format is not supported, Briar intentionally avoids database migrations that would risk plaintext exposure.

Step 10 - Community Building and Group Coordination

Briar’s offline capability makes it valuable for community organizing in restricted environments. Establish group protocols before deployment:

Community mesh protocol
protocol = {
    "channels": [
        "announcements",
        "logistics",
        "safety_reports",
        "resource_sharing"
    ],
    "roles": [
        "coordinator",
        "volunteer",
        "observer"
    ],
    "security_rules": [
        "verify all new members in person",
        "use disappearing messages for sensitive logistics",
        "backup critical decisions to secondary contact"
    ]
}

Establish roles and responsibilities before crisis situations arise. Who coordinates? How are decisions made? What’s the escalation path for safety issues?

Step 11 - Network Resilience Planning

For communities relying on Briar as critical infrastructure, plan for network failures:

Mesh topology for maximum resilience:
- Core coordinators maintain constant connectivity
- Backup relays provide redundant paths
- Edge nodes connect to core through multiple routes
- Perimeter scouts maintain external connections

This topology ensures that local network segments remain connected even if some devices leave or lose power.

Step 12 - Integration with Offline Media Distribution

Combine Briar with other offline media for communication:

Frequently Asked Questions

How long does it take to use briar messenger offline: a developer’s guide?

For a straightforward setup, expect 30 minutes to 2 hours depending on your familiarity with the tools involved. Complex configurations with custom requirements may take longer. Having your credentials and environment ready before starting saves significant time.

What are the most common mistakes to avoid?

The most frequent issues are skipping prerequisite steps, using outdated package versions, and not reading error messages carefully. Follow the steps in order, verify each one works before moving on, and check the official documentation if something behaves unexpectedly.

Do I need prior experience to follow this guide?

Basic familiarity with the relevant tools and command line is helpful but not strictly required. Each step is explained with context. If you get stuck, the official documentation for each tool covers fundamentals that may fill in knowledge gaps.

Is this approach secure enough for production?

The patterns shown here follow standard practices, but production deployments need additional hardening. Add rate limiting, input validation, proper secret management, and monitoring before going live. Consider a security review if your application handles sensitive user data.

Where can I get help if I run into issues?

Start with the official documentation for each tool mentioned. Stack Overflow and GitHub Issues are good next steps for specific error messages. Community forums and Discord servers for the relevant tools often have active members who can help with setup problems.

Related Articles