Tabnine: AI-powered chat and code completion for 80+ languages and frameworks including JavaScript, Python, Java, PHP, Go, and more
Tabnine is the AI coding assistant that accelerates and simplifies software development while keeping your code private, secure, and compliant. It provides accurate, highly personalized results for generating code, writing unit tests, creating documentation, explaining legacy code, fixing code, and much more.
Tabnine: The AI coding assistant that you control
Tabnine is the AI coding assistant that you control — helping development teams of every size use AI to accelerate and simplify the software development process without sacrificing privacy, security, or compliance. Tabnine boosts engineering velocity, code quality, and developer happiness by automating the coding workflow through AI tools customized to your team. Tabnine is trusted by more than 1,000,000 developers across thousands of organizations. Learn how to install and activate Tabnine and get started.
Boost developer productivity with AI-powered chat and code completions
Tabnine offers best-in-class AI code completion and an AI-powered chat that increases productivity and accelerates the entire software development lifecycle.
Here’s what you can do with Tabnine:
- Plan: Ask Tabnine general coding questions or learn how things work in your specific project and get solutions and references relevant to your workspace.
- Create: Generate new code using natural language. As you continue coding, Tabnine provides inline code completions, offering real-time, context-aware suggestions that seamlessly blend with your coding style.
- Test: Ask Tabnine to create tests for a specific function or code in your project, and get back the actual test cases, implementation, and assertion. Tabnine can also use existing tests in your project and suggest tests that align with your project’s testing framework.
- Fix: When tests fail, you can select code with an error and ask Tabnine for recommendations on how to fix it.
- Document: Generate documentation for specific sections of your code to enhance readability and make it easy for other team members to understand.
- Explain: Tabnine Chat can provide you with an explanation for a block of existing code, which is especially useful when reading a new codebase or reading legacy code in languages you don’t know as well.
- Maintain: In addition to writing new code, Tabnine can help you change the existing code by adding functionality, refactoring, or fixing specific code.
Tabnine supports most popular languages, frameworks, and IDEs.
Supported languages, frameworks, and libraries:
JavaScript, TypeScript, Python, Java, C, C++, C#, Go, Php, Ruby, Kotlin, Dart, Rust, React/Vue, HTML 5, CSS, Lua, Perl, YAML, Cuda, SQL, Scala, Shell (bash), Swift, R, Julia, VB, Groovy, Matlab, Terraform, ABAP.
Learn more
Supported IDEs:
VS Code, JetBrains IDEs (IntelliJ, PyCharm, WebStorm, PhpStorm, Android Studio, GoLand, CLion, Rider, DataGrip, RustRover, RubyMine, DataSpell, Aqua, AppCode), Eclipse, Visual Studio 2022.
Learn more
The AI coding assistant that you control
Unlike generic coding assistants, Tabnine is:
- Private: You choose where and how to deploy Tabnine, either as a secure SaaS offering or self-hosted on-premises or in a VPC). We never store your data or share it with any third party. Additionally, we don’t use your data to train our models. This ensures complete privacy and maximizes control over your intellectual property.
- Personalized: Tabnine delivers an optimized experience for each developer and engineering team. You can increase Tabnine's contextual awareness by making it aware of your environment — from a developer’s local IDE to the entire codebase — and receive highly personalized results for code completions, explanations, and documentation. Tabnine enterprise customers can further enrich the capability and quality of the output by creating a bespoke model that’s trained on their codebase.
- Protected: Tabnine is built with enterprise-grade security and compliance at its core. It’s trained exclusively on open source code with permissive licenses, ensuring that you’re never exposed to legal liability.
Resources
Categories: Editor, Programming Languages, Tools
Tags: code completion, AI, chat, AI Assistant, Artificial intelligence
Additional Details
Eclipse Versions: 2024-03 (4.31), 2023-12 (4.30), 2023-09 (4.29), 2023-06 (4.28), 2023-03 (4.27), 2022-12 (4.26), 2022-09 (4.25), 2022-06 (4.24), 2022-03 (4.23), 2021-12 (4.22), 2021-09 (4.21), 2021-06 (4.20), 2021-03 (4.19), 2020-12 (4.18), 2024-06 (4.32), 2024-06 (4.33)
Platform Support: Windows, Mac, Linux/GTK
Organization Name: Tabnine
Development Status: Production/Stable
Date Created: Tuesday, April 18, 2023 - 09:42
License: Commercial
Date Updated: Monday, May 27, 2024 - 08:14
Submitted by: Avichay Libeskind Mulyan
Date | Ranking | Installs | Clickthroughs |
---|---|---|---|
September 2024 | 50/547 | 143 | 6 |
August 2024 | 48/641 | 614 | 22 |
July 2024 | 51/663 | 593 | 22 |
June 2024 | 52/681 | 664 | 19 |
May 2024 | 56/682 | 688 | 20 |
April 2024 | 58/687 | 697 | 25 |
March 2024 | 55/694 | 778 | 31 |
February 2024 | 55/687 | 672 | 22 |
January 2024 | 63/691 | 688 | 27 |
December 2023 | 59/671 | 647 | 22 |
November 2023 | 58/686 | 775 | 40 |
October 2023 | 104/673 | 397 | 35 |
Unsuccessful Installs
Unsuccessful Installs in the last 7 Days: 3
Count | Error Message |
---|---|
3 | Cannot continue the operation. There is another install operation in progress. |
Reviews Add new review
Issue with installation because of a corrupt file (.active)
Submitted by Marcel Ubach on Thu, 07/18/2024 - 07:46
After installing the plugin, the tabnine button appeared in the right-bottom zone but the options were not working (e.g. when selecting the option "Open chat" the "Tabine chat" tab remained "Loading..." indefinitely).
With the help of the Tabnine support team, we've been able to determine that the problem was provoked by the .active file, which was corrupt. Fixing this file (e.g. editing it with notepad++) has solved the issue.
+1 for the quick assistance from the Tabnine support team.
chat style problems in dark mode
Submitted by Asier Cámara on Mon, 04/08/2024 - 06:02
I've been using Tabnine alongside Eclipse with the Darkest Dark Theme enabled, and I've encountered some visual glitches in Dark Mode. The chat feature within Tabnine appears in white and many areas are difficult to read. This makes it challenging to interact effectively with the chat functionality.
To improve the user experience, it would be beneficial if Tabnine could address these compatibility issues with the Darkest Dark Theme. Additionally, allowing users to manually select between light and dark modes as a fallback option would provide flexibility in case of compatibility failures.
Looking forward to seeing these improvements implemented in future updates.
Best regards.
Fix Dark Theme style problem
Submitted by BUMJO KIM on Sat, 06/22/2024 - 23:32
In reply to chat style problems in dark mode by Asier Cámara
Preferences -> General -> Appreance
Color and font theme : Default -> Classic Theme
Change font and size appropriately in the Preferences
Preferences -> General -> Editors -> Text Editors
See 'Color and Fonts' to configure the font
Good Luck
Tabnine Review
Submitted by Jude Turner on Wed, 02/21/2024 - 14:03
Tabnine is a great AI model for eclipse. I had trouble setting it up but their support team helped me out.
Works great!
Submitted by Ned Twigg on Wed, 07/12/2023 - 14:35
If you're having trouble with installation, try this github.com/equodev/eclipse-ai-example#readme
THIS IS NOT TABNINE
Submitted by Tzuf Stokelman on Wed, 02/07/2024 - 06:57
In reply to Works great! by Ned Twigg
PLEASE IGNORE THIS! THIS IS NOT TABNINE
Can't install on Eclipse 2023-06
Submitted by Gavin Yang on Wed, 06/28/2023 - 01:31
When installing Tabnine 0.1.8, Eclipse pops up the Trust Authorities window. When I choose the checkbox of Tabnine update site, I get the error:
An error has occurred. See error log for more details. Cannot invoke "org.eclipse.jface.viewers.TreeNode.getChildren()" because "treeNode" is null
Here is the details:
!ENTRY org.eclipse.jface 4 2 2023-06-28 13:19:50.390
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jface".
!STACK 0
java.lang.NullPointerException: Cannot invoke "org.eclipse.jface.viewers.TreeNode.getChildren()" because "treeNode" is null
at org.eclipse.equinox.internal.p2.ui.dialogs.TrustAuthorityDialog.getAllChildren(TrustAuthorityDialog.java:823)
at org.eclipse.equinox.internal.p2.ui.dialogs.TrustAuthorityDialog.getAllChildren(TrustAuthorityDialog.java:818)
at org.eclipse.equinox.internal.p2.ui.dialogs.TrustAuthorityDialog.lambda$3(TrustAuthorityDialog.java:257)
at org.eclipse.jface.viewers.CheckboxTreeViewer$1.run(CheckboxTreeViewer.java:168)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
at org.eclipse.jface.viewers.CheckboxTreeViewer.fireCheckStateChanged(CheckboxTreeViewer.java:165)
at org.eclipse.jface.viewers.CheckboxTreeViewer.handleSelect(CheckboxTreeViewer.java:295)
at org.eclipse.jface.viewers.StructuredViewer$4.widgetSelected(StructuredViewer.java:1205)
at org.eclipse.jface.util.OpenStrategy.fireSelectionEvent(OpenStrategy.java:263)
at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:421)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4274)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4072)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
at org.eclipse.jface.window.Window.open(Window.java:799)
at org.eclipse.equinox.internal.p2.ui.ValidationDialogServiceUI.lambda$18(ValidationDialogServiceUI.java:467)
at org.eclipse.ui.internal.PendingSyncExec.run(PendingSyncExec.java:68)
at org.eclipse.ui.internal.UILockListener.doPendingWork(UILockListener.java:172)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4047)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3663)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
at org.eclipse.jface.window.Window.open(Window.java:799)
at org.eclipse.epp.internal.mpc.ui.commands.AbstractMarketplaceWizardCommand.openWizardDialog(AbstractMarketplaceWizardCommand.java:146)
at org.eclipse.epp.internal.mpc.ui.commands.AbstractMarketplaceWizardCommand.execute(AbstractMarketplaceWizardCommand.java:73)
at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:283)
at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:97)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:309)
at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:243)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:173)
at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:156)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:488)
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:485)
at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213)
at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:438)
at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.handleWidgetSelection(AbstractContributionItem.java:449)
at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.lambda$2(AbstractContributionItem.java:475)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4274)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4072)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:643)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:550)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:171)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
Re: Can't install on Eclipse 2023-06
Submitted by Tzuf Stokelman on Thu, 06/29/2023 - 02:50
In reply to Can't install on Eclipse 2023-06 by Gavin Yang
Try to Install Tabnine on Eclipse 2023-03
Re: Re: Can't install on Eclipse 2023-06
Submitted by Gavin Yang on Thu, 07/13/2023 - 10:55
In reply to Re: Can't install on Eclipse 2023-06 by Tzuf Stokelman
It's OK on Eclipse 2023-03. The issue still exists on version 0.19 while installed on Eclipse 2023-06.
Re: Re: Re: Can't install on Eclipse 2023-06
Submitted by Tzuf Stokelman on Sun, 07/16/2023 - 04:50
In reply to Re: Re: Can't install on Eclipse 2023-06 by Gavin Yang
Thanks for letting us know. We are working on a fix.
Hi, Can you try again?
Submitted by Tzuf Stokelman on Wed, 02/07/2024 - 01:32
In reply to Re: Re: Can't install on Eclipse 2023-06 by Gavin Yang
Hi, Can you try again?
Tabnine installer mess up the whole Eclipse installer
Submitted by Alessandro Borges on Tue, 07/18/2023 - 10:30
In reply to Can't install on Eclipse 2023-06 by Gavin Yang
The Tabnine install is a complete failure.
It hangs at "Trusted Certificate Authorities" and do not complete the installation.
And it gets worst: After that, you can't install nor update anything until you go to Preferences -> Install/Update -> Available Software Sites and then remove the Tabnine site.
It's a shame, as it was a very promising plug-in.
Re: Tabnine installer mess up the whole Eclipse installer
Submitted by Tzuf Stokelman on Wed, 07/19/2023 - 09:10
In reply to Tabnine installer mess up the whole Eclipse installer by Alessandro Borges
We are sorry to hear that. What version of Eclipse do you use? Try it on 03-2023
Re: Tabnine installer mess up the whole Eclipse installer
Submitted by Tzuf Stokelman on Thu, 07/20/2023 - 01:50
In reply to Tabnine installer mess up the whole Eclipse installer by Alessandro Borges
Try:
Window->Preferences->Install/Update->Trust
Move to the Authorities tab
Click "Add"
paste https://eclipse-update-site.tabnine.com
Apply and Close
Install the plugin from the marketplace as usual
Error when installing plugin on Eclipse 2021-12 (4.22)
Submitted by Moisés Álvarez on Tue, 06/06/2023 - 07:18
Seems like one of the required packages is no longer available.
Here is the output from Eclipse:
Re: Error when installing plugin on Eclipse 2021-12 (4.22)
Submitted by Tzuf Stokelman on Wed, 06/21/2023 - 03:50
In reply to Error when installing plugin on Eclipse 2021-12 (4.22) by Moisés Álvarez
Hi,
Please contact support@tabnine.com with all the details and we will take care of you.
Cannot complete the install
Submitted by 樾 巫 on Mon, 06/05/2023 - 23:04
Cannot complete the install because some dependencies are not satisfiable
Software being installed: a.jre.javase 18.0.0
Software being installed: Tabnine for Eclipse 0.1.8 (com.tabnine.eclipse.feature.feature.group 0.1.8)
Cannot satisfy dependency:
From: Tabnine-eclipse 0.1.8 (com.tabnine.eclipse 0.1.8)
To: osgi.ee; (&(osgi.ee=JavaSE)(version=11))
Cannot satisfy dependency:
From: Tabnine for Eclipse 0.1.8 (com.tabnine.eclipse.feature.feature.group 0.1.8)
To: org.eclipse.equinox.p2.iu; com.tabnine.eclipse [0.1.8,0.1.8]
Re: Cannot complete the install
Submitted by Tzuf Stokelman on Wed, 06/21/2023 - 03:49
In reply to Cannot complete the install by 樾 巫
Hi,
Please contact support@tabnine.com with all the details and we will take care of you.
Cannot install to STS 4
Submitted by Jeevan Sunkersett on Mon, 04/24/2023 - 08:16
After attempting to install I get the error;
Unable to read repository at https location eclipse-update-site.tabnine.com/content.xml.
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Re: Cannot install to STS 4
Submitted by Eran Yahav on Wed, 04/26/2023 - 14:36
In reply to Cannot install to STS 4 by Jeevan Sunkersett
Checked the install on STS4 and it works well. Could it be a problem trying to access Tabnine behind a firewall?