What Is NLPCraft

Apache NLPCraft® is an open source library for adding natural language Interface to modern applications.

Define the intents to interpret user input using any JVM-based language like Java, Scala, Groovy or Kotlin. Use REST API to explore the data with natural language.

Natural Language

Natural Language Interface enables users to explore any type of data using natural language augmenting existing UI/UX with fidelity and simplicity of a familiar spoken language.

There is no learning curve, no special rules or UI to master, no cumbersome syntax or terms to remember - just a natural language that your users already speak.

Key Features

Programmable Intents

Fully programmable, advanced intent DSL with deterministic matching provides easy to use and expressive mechanism for a complex intent logic.

Composable Named Entities

Compose new reusable Named Entities out of built-in or external ones, build new ones and mix and match using comprehensive DSL.


Advanced out-of-the-box support for maintaining and managing conversational context that is fully integrated with intent matching.


REST API and Java-based implementation natively supports the world's largest ecosystem of development tools, multiple programming languages, frameworks and services.

Any Data Source

NLPCraft supports any data source, device, or service - public or private. From databases and SaaS systems, to smart home devices, voice assistants and chatbots.


Model-as-a-code convention natively supports any system development life cycle tools and frameworks in the Java ecosystem.

By Devs - For Devs

Built with a singular focus - provide developers with unprecedented productivity and efficiency when building modern NLI applications.

English Focused

NLPCraft focuses on processing English language delivering the ease of use and unparalleled comprehension for the language spoken by more than a billion people.

Out-Of-The-Box Integration

NLPCraft natively integrates with 3rd party libraries for basic NLP processing and named entity recognition:

How It Works

There are three main software components:

Data model provides named entities, configuration properties and intents. Developers use model-as-a-code approach to build models using any JVM language like Java, Scala, Groovy or Kotlin.

Data probe is a DMZ-deployed application designed to securely deploy and manage data models. Each probe can manage multiple models and you can have many probes.

REST server provides REST endpoint for end-user applications to securely query data sources using natural language via data models deployed in data probes.

Latest News

Apache NLPCraft is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects.

While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF. Licensed under the Apache License, Version 2.0. Apache NLPCraft, Apache, the Apache feather, and the Apache NLPCraft project logo are either trademarks or registered trademarks of the Apache Software Foundation.