Bosun Documentation

An AI agent inside Odoo Community Edition: chat with your data, approve every change, run it on your own hardware or any provider.

docs build 2026-06-11 · covers bosun, bosun_discuss, bosun_accounting, bosun_tasks, bosun_inventory, bosun_purchase, bosun_sales, bosun_marketing, bosun_doc_import · Odoo 17 + 18 CE

Getting started

  1. Place the bosun module (and any packs) in your addons path and install from Apps. Dependencies: base, web, mail; the Accounting pack adds account; the Work Week pack adds project, calendar; the Document Import pack adds account, purchase, sale. Every app nests under one shared Bosun menu.
  2. Open Bosun → Providers and create your first provider (next section).
  3. Click Test Connection. A success toast means you are live.
  4. Open Bosun → Chat and click a suggested prompt.
Python note: the Anthropic provider needs pip3 install anthropic on the Odoo host. Local and OpenAI-compatible providers need nothing extra.

Quick start: your first Monday

The fastest way to understand Bosun is to spend a Monday morning with it. You do not configure anything or learn commands. You sit down, open Bosun → Chat (or just DM the Bosun contact in Discuss), and talk. Bosun already knows your role from your Odoo login, and the start-of-week and start-of-month suggested prompts are waiting in an empty chat. Here is a realistic first half hour.

1. See what is actually on your plate

You start with the obvious question, and Bosun reads it straight from Odoo:

you:    What's on my plate this week?
bosun:  6 open task(s):
        #41 Rebuild wholesale pricing spreadsheet | 120m | deep | Sales
        #44 Reconcile May bank statement          | 90m  | deep | Finance
        #47 Email 3 wholesale leads               | 30m  | shallow
        ...

Anything new that comes to mind, you just say. Bosun estimates the effort and the focus type, shows a confirmation card, and files it. No form.

you:    Remind me to follow up with the label printer about the
        reprint, and I need to redo the Q2 forecast.
bosun:  Add task: "Follow up with label printer on reprint"
        about 20 min, shallow focus.        [ Approve ]  [ Change ]
        Add task: "Redo Q2 forecast"
        about 90 min, deep focus, project Finance.   [ Approve ]

2. Let Bosun lay out the week

Once the list is right, hand it the calendar. Bosun schedules deep work into your morning focus window, caps how many deep blocks land in a day, keeps lunch clear, and books around the meetings already on your calendar. You see the whole plan before a single event is created.

you:    Plan my week
bosun:  Book 5 task(s) onto your calendar:
        Mon 09:00-11:00  Rebuild wholesale pricing spreadsheet (deep)
        Tue 09:00-10:30  Reconcile May bank statement (deep)
        Tue 14:00-15:30  Redo Q2 forecast (deep)
        Mon 14:00-14:30  Email 3 wholesale leads (shallow)
        ...                            [ Approve ]  [ Deny ]

3. Work the business questions, not the menus

With the week framed, you turn to the things you would normally click through five screens for. With the Accounting pack installed, the accounting context answers from your live books:

you:    Who owes us money, oldest first, past 60 days?
bosun:  3 customers past 60 days, $14,820 total:
        Northgate Cafe   $7,300   78 days overdue
        Pier 9 Catering  $4,920   64 days overdue   [open]
        ...
you:    What's our cash position right now?
you:    Any strange-looking transactions I should review before I approve payments?

When you decide to act, the same chat does it, and the safety rail is automatic. "Mark the Northgate invoice paid" returns a card naming the exact invoice and amount; nothing moves until you approve, and every action is written to the audit log.

4. The same chat grows with you

Bosun only offers what it can actually do. Each pack you install lights up a new context and a new set of tools, while the conversation stays the same. The roadmap extends this Monday straight into operations:

You will askContextStatus
"What's on my plate?", "Plan my week", the Friday reviewtasksAvailable (Work Week pack)
"Who's overdue?", "Cash position?", "Mark this bill paid", "Anything strange to review?"accountingAvailable (Accounting pack)
"Create a vendor bill from this receipt photo"accountingAvailable (Document Import pack)
"What's running low?", "Receive P00020", "What ships this week?"inventoryAvailable (Inventory pack)
"Which POs are late?", "Order 50 cases from M-Star", "What do we pay for bags?"purchaseAvailable (Purchase pack)
"How are the email campaigns doing?", "Which had the best open rate?", "How big is each list?"marketingAvailable (Marketing pack)
"Which manufacturing orders are scheduled this week?", "Any MO short on components?"manufacturingPlanned (Manufacturing pack)
The point of the first Monday: you never learn Bosun's commands, because there are none. You describe what you need in your own words, you approve what changes, and the surface area quietly expands as you add packs. By Friday, the same chat runs your end-of-week review and clears the decks for next Monday.

Providers & models

A provider is one model endpoint. Create several and switch anytime; chats record token usage per provider.

FieldWhat it does
KindLocal (llama.cpp / Ollama), OpenAI, Anthropic, or Custom (any OpenAI-compatible server).
Base URLFor local servers, e.g. http://localhost:8080/v1. Anthropic uses its native API.
ModelThe model id the server expects, e.g. gemma-4-e4b, claude-opus-4-8.
API KeyPaste it here. It is stored in protected system parameters, never on the record, and only ever displayed masked.
Response stylePrecise (recommended for data work), Balanced, Creative, or Custom. Presets manage temperature for you. Hidden for Anthropic, which manages this itself.
Response budgetMax tokens per reply. Click Auto-Detect: Bosun asks the server for its real context window and sizes the budget from it.

Test Connection sends one tiny message and reports success or exactly what to fix (wrong key, unreachable server).

Using the chat

The co-pilot chat (Discuss)

Click the gold compass in the top bar and Bosun opens as a native Discuss chat window: it floats over every screen, follows you as you navigate, and persists like any other chat. Same agent, same permissions, same approval rules. The full-screen page stays available under the Bosun menu.

Requires the Bosun Discuss module; the file-drop lane needs the Document Import pack (a bridge module installs itself when both are present and runs the queue as you, with your own access rights).

Approvals & audit

The trust rules are enforced in code, not in a prompt:

Accounting pack paid

Conversational accounting over your live books. Sample prompts:

ToolType
biggest_expenses, anomaly_scan, line_item_drill, vendor_spend, cash_position, aging_followupsread, auto-run
register_paymentwrite, approval-gated, amount-pinned

Inventory & Purchase packs paid

The supply chain, conversationally. Two packs that install separately and link up on their own (receiving a PO crosses both; the bridge installs itself when both sides are present). Sample prompts:

ToolType
stock_levels, low_stock_scan, pending_receipts, pending_deliveries, move_history, open_pos, po_status, late_pos, vendor_price_lookupread, auto-run
validate_receipt, receive_po, schedule_delivery, create_internal_transfer, run_reorder, set_quantity_on_hand, create_rfq, confirm_po, update_po_dates, send_rfqwrite, approval-gated, pinned to the exact records and quantities shown

Sales pack paid

Conversational pricing. Sets a product's own prices, and is careful to keep them distinct from pricelist rules.

ToolType
set_sale_price, set_cost_pricewrite, approval-gated, price-pinned

Marketing pack paid

Your email marketing, answered in plain language from Odoo's Email Marketing app. Read-only: it reports on campaigns and audiences, it does not send. Sample prompts:

Campaign statistics are named differently across Odoo versions; the pack reads whatever your version exposes, so the numbers are right whether you are on 17 or 18, where a hand-written query would break.

ToolType
campaign_performance, campaign_detail, audience_overviewread, auto-run

Document Import pack paid

Turn a PDF or a phone photo of a business document into a draft Odoo record. You upload the file under Bosun → OCR, a vision-capable model reads it, pulls out the structured fields, and builds a draft you review before anything posts.

  1. Scan: PDFs with a real text layer are read directly; true scans and photos go to the vision model, tiled so even large pages stay within GPU limits.
  2. Extract: partner, reference, date, and line items come back as structured data, with a buyer/seller hint that decides the document type.
  3. Create: a draft Purchase Order, Sale Order, or Vendor Bill, matching or creating the partner and matching each product from a token-searched shortlist (with plural tolerance). The original file is attached to the new record's chatter for verification. A receipt that was already paid can be posted and paid in one step from a chosen "Paid With" journal.

It runs on any OpenAI-compatible vision endpoint (local llama.cpp / Ollama, OpenAI, OpenRouter). PDF support needs pip3 install PyMuPDF on the Odoo host; images work without it. Steps run from buttons, or unattended on a bundled cron (off by default).

Landed costs (auto-install bridge). When a document states extra charges (freight, handling, marketplace fees), the bridge drafts a stock.landed.cost the moment the purchase receipt is validated: one cost line per charge, the landed-cost product chosen by the model from your landed_cost_ok shortlist, left in draft for a human to validate. A per-vendor marketplace fee percent (for example an Alibaba transaction fee) can default from the vendor and apply per PO. The bridge installs itself only when both Document Import and Landed Costs are present.

CapabilityType
Scan + extract (vision OCR, structured fields, product matching)read, on demand or cron
Create draft PO / SO / Vendor Bill, original attacheddraft, you review before posting
Post + pay an already-paid receipt from a chosen journalwrite, explicit
Draft a landed cost from stated freight/fees at receipt (bridge)draft, human validates
Dependencies: account, purchase, sale (plus stock_landed_costs for the bridge). Like every Bosun app it nests under the shared Bosun menu.

Work Week pack paid

Throw tasks at Bosun in plain language. It guesses the effort in minutes, the energy (deep focus vs shallow routine), and a project; the approval card shows the guesses; approve or tell it what to change. Then:

you:    Plan my week
bosun:  Book 5 task(s) onto your calendar:
        Wed 09:00–11:00  Rebuild wholesale pricing spreadsheet (deep)
        Thu 09:00–10:30  Reconcile May bank statement (deep)
        ...                       [ Approve ]  [ Deny ]

The scheduler honors your presets, set per user (Settings → Users → Bosun tab):

PresetDefault
Day start / lunch / day end9:00 / 12:00-13:00 / 17:00
Deep tasks before lunch onlyon
Max deep tasks per day2
Buffer between blocks15 min

It schedules around existing calendar events, books tagged events, and never double-books a task. Cycle prompts drive the rhythm: "Plan my week" surfaces at month start, the Friday review (what gets punted, what moves to Monday) at week's end.

Administration

Retention: Bosun forgets on your schedule

Transcripts are working chatter; the audit log is the record. They age on separate clocks:

System parameterDefaultMeaning
bosun.retention_days7Conversations, messages, and bridged Discuss DMs older than this are purged nightly. One work week: plan Monday, review Friday, clean slate. 0 disables.
bosun.audit_retention_days0 (forever)The audit log's own clock, for your compliance policy.

Conversations holding an unanswered approval card are never purged, and every purge is itself an audit entry.

Discuss bridge

DM the Bosun contact in Odoo Discuss from any screen, desktop or mobile. The docked chat window persists while you navigate, replies can deep-link you to records, and anything needing approval hands off to the Bosun panel where the card is waiting. Discuss messages follow the same retention schedule as other transcripts.

Questions, pilot access, or a missing page: hello@practicalbusinessmachines.com