Skip to main content

Code execution in TenderB — when the AI writes and runs its own Python to fill spreadsheets, build Word documents, draw charts, and more

TenderB spins up its own sandboxed Linux server, writes Python, and runs it on the spot — to fill Excel templates, build Word documents from your house template, draw Mermaid charts, and read files no LLM can open on its own.

E
Written by Eden Noelle

Some tasks are not text problems. Filling an Excel template with thirty rows of formulas, generating a Word document from your house template, drawing a Mermaid flowchart, opening a 200-page scanned PDF and pulling out a table — none of these are things a language model can do well by typing. They're code problems, and TenderB solves them by writing and running its own code.

Under the hood, TenderB can spin up its own sandboxed Linux server, write Python, and execute it on the spot. Practically any Python library is available — openpyxl and pandas for spreadsheets, python-docx for Word, matplotlib, plotly and mermaid for visuals, pypdf and pdfplumber for PDFs, and many more. The model decides when code is the right tool, writes it, runs it, checks the output, and shows you the result.

What this unlocks

A non-exhaustive list of what code execution makes possible inside a TenderB chat:

  • Fill in Excel templates. Drop your evaluation matrix, K-criteria sheet, or pricing template into the chat and TenderB fills it in cell by cell — formulas, formatting, named ranges intact.

  • Generate Word documents from your house template. Upload your .docx template (letterhead, footers, styles, table of contents, the lot) and TenderB writes the content into it. The output keeps your formatting because TenderB is editing your template, not generating a new file.

  • Draw Mermaid diagrams, flowcharts, organisation charts and Gantt charts. Useful for process descriptions, transition plans, and project schedules in technical volumes.

  • Make graphs and charts. Bar charts, line charts, pie charts from numbers in your documents — generated as image files you can paste straight into a proposal.

  • Read files no LLM can read directly. Scanned PDFs (OCR), CSV exports with weird separators, ZIP archives, screenshots, image-only attachments — code execution opens what the model alone cannot.

  • Run calculations you can audit. Price models, BVP scoring, weighted compliance scores — the AI writes the maths in code instead of guessing, so you can see and verify the formulas.

Where the generated files end up

Every file TenderB creates with code execution shows up in two places:

  1. In the chat itself. The file attaches to the AI's reply. If the message looks shorter than expected, the chat may be collapsed — click to expand it and the file appears at the bottom of that message.

  2. In Files → Project chat files → [name of the chat]. A dedicated folder is created per chat, named after the chat. Every file the AI generated in that chat lives there, ready to download, share, or move into your knowledge base.

This means you do not have to save anything manually. The chat is the working surface, the folder is the archive.

Files generated in your personal workspace are private by default

If the chat that produced the file lives in your personal workspace, the generated file is automatically marked private. Colleagues with access to the same project will not see it. This protects work-in-progress: experiments, drafts, exploratory calculations, anything you would not want a teammate to find before you've reviewed it.

If you do want to share a personal-workspace output, open the file's properties and switch the visibility, or move the file into a shared project folder.

The server space closes 1 hour after the last chat message

Each chat gets its own sandboxed server space. It stays alive for one hour after your last message, then shuts down. While it's alive, the AI keeps everything it built earlier in the same chat — uploaded files, installed packages, intermediate spreadsheets, variables, the lot — and can iterate on top of it without starting from scratch.

A few practical consequences:

  • Within an hour you can come back, say "now also add a column for VAT", and TenderB picks up where it left off, on the same file, in the same Python session.

  • After an hour the next message starts a fresh server. Your previously generated files are still in the chat and in the Project chat files folder — they don't disappear — but the in-memory state of the Python session is gone. If you want to keep iterating on a file after a longer break, just attach it from the chat or the project folder to your next message.

  • Each chat is isolated. Two chats next to each other have two separate server spaces. They do not share files or memory.

When to explicitly ask TenderB to use code execution

TenderB will reach for code execution by itself whenever the task obviously needs it (filling an Excel, generating a Word, parsing a scanned PDF). But you can also nudge it. Phrasings that reliably trigger it:

  • "Fill in this Excel template with…"

  • "Use my Word template and write a letter with these contents…"

  • "Make a Mermaid flowchart of the transition plan."

  • "Draw a bar chart of the prices in this table."

  • "Open the attached PDF and extract the table on page 12."

  • "Calculate the BVP score for each bidder with code so I can check the maths."

If you don't see the file

  • The chat message is collapsed. Click the message to expand it. Files attach to the bottom of the AI's reply.

  • Check Files → Project chat files → [chat name]. Even if the chat is closed or scrolled away, the file lives there.

  • The file is from your personal workspace and a colleague can't see it. That's the privacy default. Change visibility in the file's properties or move the file to a shared project.

  • Code execution failed. The AI will tell you in the chat. Ask it to try a different library or to break the task into smaller steps — it can iterate and fix its own code.

Did this answer your question?