
Security News
CVE Volume Surges Past 48,000 in 2025 as WordPress Plugin Ecosystem Drives Growth
CVE disclosures hit a record 48,185 in 2025, driven largely by vulnerabilities in third-party WordPress plugins.
ink-text-input
Advanced tools
Text input component for Ink.
npm install ink-text-input
import React, {useState} from 'react';
import {render, Box, Text} from 'ink';
import TextInput from 'ink-text-input';
const SearchQuery = () => {
const [query, setQuery] = useState('');
return (
<Box>
<Box marginRight={1}>
<Text>Enter your query:</Text>
</Box>
<TextInput value={query} onChange={setQuery} />
</Box>
);
};
render(<SearchQuery />);
Type: string
Value to display in a text input.
Type: string
Text to display when value is empty.
Type: boolean
Default: true
Listen to user's input. Useful in case there are multiple input components at the same time and input must be "routed" to a specific component.
Type: boolean
Default: true
Whether to show cursor and allow navigation inside text input with arrow keys.
Type: boolean
Default: false
Highlight pasted text.
Type: string
Replace all chars and mask the value. Useful for password inputs.
<TextInput value="Hello" mask="*" />
//=> "*****"
Type: Function
Function to call when value updates.
Type: Function
Function to call when Enter is pressed, where first argument is a value of the input.
This component also exposes an uncontrolled version, which handles value changes for you. To receive the final input value, use onSubmit prop.
Initial value can be specified via initialValue prop, which is supported only in UncontrolledTextInput component.
import React from 'react';
import {render, Box, Text} from 'ink';
import {UncontrolledTextInput} from 'ink-text-input';
const SearchQuery = () => {
const handleSubmit = query => {
// Do something with query
};
return (
<Box>
<Box marginRight={1}>
<Text>Enter your query:</Text>
</Box>
<UncontrolledTextInput onSubmit={handleSubmit} />
</Box>
);
};
render(<SearchQuery />);
Ink is a React renderer for creating command-line interface applications. While it provides the foundation for building CLI apps, it does not include built-in text input components like ink-text-input. Developers can use Ink to create custom components or integrate third-party components like ink-text-input.
Blessed is a library for creating terminal user interfaces. It provides a wide range of widgets, including text input fields, but it uses a different approach compared to Ink. Blessed is more low-level and imperative, whereas Ink and ink-text-input are declarative and React-based.
Inquirer is a library for creating interactive command-line prompts. It includes various types of prompts, such as text input, password input, and more. Inquirer is more focused on creating prompts and collecting user input, whereas ink-text-input is a React component that can be used within a larger Ink-based CLI application.
FAQs
Text input component for Ink
The npm package ink-text-input receives a total of 472,995 weekly downloads. As such, ink-text-input popularity was classified as popular.
We found that ink-text-input demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
CVE disclosures hit a record 48,185 in 2025, driven largely by vulnerabilities in third-party WordPress plugins.

Security News
Socket CEO Feross Aboukhadijeh joins Insecure Agents to discuss CVE remediation and why supply chain attacks require a different security approach.

Security News
Tailwind Labs laid off 75% of its engineering team after revenue dropped 80%, as LLMs redirect traffic away from documentation where developers discover paid products.