- selecting a model and privacy options,
- using the chat/assistant pane,
- scaffolding a minimal Python project,
- editing and accepting suggestions,
- generating tests and documentation,
- using the Ask/suggestions features.

Model selection and privacy
Tabnine supports several model choices (for example Claude 3.5 Sonnet, GPT-4o, third-party models from Hugging Face, and Tabnine’s Protected/Private models). Choosing the right model affects cost, latency, behavior, and — crucially — data privacy and regulatory compliance.When you must keep code and model execution inside your network (so the model neither sees nor trains on your code outside your environment), choose a Tabnine Protected/Private model (available for enterprise customers). This isolates model execution inside your infrastructure and prevents it from being trained on your codebase.

Workspace chat and assistant UI
The Tabnine sidebar provides:- a chat input for conversational prompts,
- action buttons for common workflows (scaffold project, generate tests, explain code),
- suggestion badges inline in the editor for completions and edits.
Scaffolding a minimal Python project
Using the prompt term “scaffold” or “create project” usually prompts Tabnine to produce a full project layout and relevant best-practice files (venv setup, README, .gitignore, LICENSE, tests, and a simple main module). A concise set of commands to initialize a minimal project and virtual environment:src/main.py:
README.md:
.gitignore to avoid committing it:
Notes about determinism
LLM-based assistants are non-deterministic: outputs vary with prompt phrasing, model choice, and workspace context. If you run the same prompt repeatedly you may get variations in file layout, naming, or comments, but the general structure and intent (a boilerplate project with a main function and supporting files) tend to be consistent.Editing, commenting, and accepting Tabnine suggestions
Tabnine leverages workspace context to propose edits: adding comments, docstrings, small refactors, and inline code changes. Typically the assistant offers “Insert” (place the suggestion into the file) or “Apply” (merge edits) actions. Example: asking Tabnine to “Add comments to this code” might produce:Automated suggestions (including refactors and scaffolding) should be reviewed before merging into your codebase. Models can introduce subtle bugs, licensing issues in suggested snippets, or patterns that don’t match your code conventions.
Testing: generate a test plan and test file
Tabnine can create test files and simple test plans. For themain() function above, an example pytest file Tabnine might generate:
Explain: quick code explanations
You can highlight a code block and ask Tabnine to explain it. For themain() example the assistant commonly explains:
def main():— defines the main function.if __name__ == "__main__":— makes the module executable as a script while allowing safe imports without side effects.
Document: generate docstrings or pydoc-style docs
Tabnine can auto-generate docstrings. Example docstring formain():
Ask: suggestions for improvements and best practices
The Ask feature provides higher-level suggestions such as:- parameterizing functions,
- adding logging,
- adding type hints,
- refactoring to be more testable.
- Logging supports configurable levels and handlers.
- It integrates with monitoring and can be redirected to files or external systems without changing the code flow.
printis fine for quick scripts;loggingis preferred in production contexts.
Summary
- Tabnine integrates into VS Code as a chat/editor assistant and supports multiple model types, including private/isolated models for enterprise use.
- Use prompts like “scaffold” to get a project structure (venv, src, tests, README, .gitignore, LICENSE).
- Tabnine can add comments, docstrings, generate tests, explain code, and suggest improvements (logging, parameterization, typing).
- Always review suggested edits: model outputs are helpful but not guaranteed correct. Consider privacy constraints and choose Protected/Private models when handling proprietary or regulated data.