Platform Naming Intelligence Engine
Generate Β· Analyze Β· Validate Β· Discover
β If NEXAGEN saves you time, consider starring the repo β it helps others find it.
NEXAGEN is a command-line tool that generates and scores brand names for startups, products, platforms, and open-source projects. You give it a few keywords describing what you're building β it runs those through a five-stage linguistic pipeline and hands back ranked candidates with brand strength scores, trademark risk assessments, domain availability across 40+ TLDs, and handle checks on GitHub, PyPI, npm, Docker Hub, and Hugging Face.
It was built for people who spend too much time staring at a blank domain search page. The output isn't random β every name goes through phonetic analysis, memorability scoring, uniqueness testing against a curated blacklist, and collision detection against known trademarks before it surfaces in the results.
- Features
- Architecture
- Installation
- Quick Start
- CLI Reference
- Menu Modes
- Generation Pipeline
- Scoring System
- Profiles & Style Modes
- Domain Intelligence
- Platform Checks
- Export Formats
- Configuration
- Environment Variables
- Project Structure
- Running Tests
- Module Stats
- Credits
| Capability | Detail |
|---|---|
| Name Generation | 5-stage pipeline β keyword processing β synonym expansion β 10 pattern strategies β 12 mutation strategies β brand scoring |
| Brand Scoring | Composite 0β100 score across pronounceability, memorability, uniqueness, and length fitness |
| Phonetic Analysis | 9-dimension phonetic profile β vowel balance, consonant flow, alternation, syllable rhythm, and more |
| Collision Detection | Exact, edit-distance, phonetic (Soundex + Metaphone), substring, and N-gram signals |
| Trademark Risk | Damerau-Levenshtein distance against a curated brand blacklist with HIGH / MEDIUM / LOW / NONE tiers |
| Domain Availability | RDAP lookup for 40+ scored TLDs with prefix/suffix variant generation and portfolio recommendations |
| Platform Checks | Concurrent availability check on GitHub, PyPI, npm, Docker Hub, and Hugging Face |
| Startup Report | Full one-shot report β names + domains + platforms + stats β for a project in a single command |
| Export | JSON, CSV (Excel-compatible), and Markdown output, individually or all three at once |
| Themes | cyberpunk (default), light, mono β Rich-powered terminal UI with animated boot and name reveal |
| Profiles | 9 industry profiles that bias vocabulary, TLD selection, and pattern weights |
| Style Modes | 6 linguistic styles that control which mutation and pattern strategies are active |
flowchart TD
A["User Input\nKeywords"] --> B["KeywordEngine\nclean Β· validate Β· score"]
B --> C["SynonymEngine\nexpand Β· profile-vocab Β· filter by style"]
C --> D["PatternEngine\n10 linguistic strategies"]
C --> E["MutationEngine\n12 char-level mutations"]
D --> F["Candidate Pool\nmerge Β· deduplicate"]
E --> F
F --> G["BrandScorer\npronounce Β· memory Β· uniqueness Β· length"]
G --> H["Ranked NameResults\nsorted by composite score"]
H --> I{"Mode"}
I -->|Interactive| J["Rich Terminal UI\nanimated reveal Β· tables"]
I -->|Export| K["JSON / CSV / Markdown\nreport_builder"]
H --> L["DomainGenerator\nplans Β· TLD strategy"]
L --> M["DomainChecker\nRDAP Β· batch Β· cache"]
H --> N["PlatformDispatcher\nGitHub Β· PyPI Β· npm\nDocker Β· HuggingFace"]
M --> O["Startup Report"]
N --> O
style A fill:#9b59b6,color:#fff
style G fill:#6c5ce7,color:#fff
style O fill:#2ecc71,color:#fff
style K fill:#f39c12,color:#fff
- Python 3.9 or later
rich >= 13.0(terminal UI)typer >= 0.9(CLI framework)httpx >= 0.27(HTTP client)rapidfuzz >= 3.0(fuzzy string matching)- Internet connection for domain and platform availability checks (optional β checks can be disabled)
git clone https://github.com/cyberempirex/nexagen
cd nexagen
pip install -e .git clone https://github.com/cyberempirex/nexagen
cd nexagen
pip install rich typer httpx rapidfuzz
python -m nexagen.cli.appnexagen --version
# NEXAGEN v1.0.0 Β· CEX-NexagenLaunch the interactive menu:
nexagenGenerate names immediately from the command line:
nexagen --generate ai data platform
nexagen --generate cloud security tools --profile security --count 15
nexagen --generate fintech payment ledger --style futuristic --no-animRun headless (no animations, no screen clear β good for piping or scripting):
nexagen --generate neural model agent --no-anim --no-clearFull startup report for a project:
Once inside the interactive menu, choose option 4 β Startup Report, enter your project name and keywords, and NEXAGEN will run the complete pipeline and write a report to ~/.nexagen/exports/.
nexagen [OPTIONS]
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--version |
-v |
flag | β | Print version and exit |
--no-anim |
β | flag | off | Disable all Rich animations |
--no-clear |
β | flag | off | Skip screen clear on startup |
--no-update-check |
β | flag | off | Skip GitHub update check |
--profile |
-p |
string | from settings | Industry profile β see Profiles |
--style |
β | string | from settings | Naming style mode β see Style Modes |
--count |
-n |
int | 20 |
Number of names to generate (max 200) |
--generate |
-g |
KEYWORD... |
β | Generate immediately and exit |
Examples:
# 30 names, AI profile, futuristic style, no animation
nexagen -g cloud model -p ai --style futuristic -n 30 --no-anim
# Tech profile, default style, open interactive menu
nexagen -p tech
# Quick check β version only
nexagen -vWhen launched without --generate, NEXAGEN opens an interactive menu:
1 Generate Names Β· keyword-driven name generation
2 Analyze Brand Β· score an existing or custom name
3 Domain Suggest Β· TLD strategy + availability for a brand
4 Startup Report Β· full pipeline β names + domains + platforms
5 About Β· version, credits, system info
6 Exit
Every run β interactive or headless β passes through the same five stages:
Stage 1 β KeywordEngine
Normalise β validate β score β profile-boost
Rejects: too-short tokens, digits-only, stopwords
Output: KeywordSet with final[], scored[], warnings[]
Stage 2 β SynonymEngine
Synonym graph expansion (depth-1) + profile vocabulary injection
Phonetic deduplication via Soundex + Metaphone
Output: ExpansionResult β up to 80 scored seed words
Stage 3 β PatternEngine (10 strategies)
Applies macro-level combination strategies to the seed pool
Each candidate carries a strategy tag for filtering and analysis
Output: list[Candidate] β name + strategy + source seeds
Stage 4 β MutationEngine (12 strategies)
Applies character- and phoneme-level mutations to individual seeds
Works deeper than PatternEngine β modifies within words, not between them
Output: list[MutatedCandidate] β name + strategy + fitness flag
Stage 5 β BrandScorer
Merges and deduplicates all candidates from stages 3 and 4
Scores each on 4 weighted dimensions (see Scoring System)
Applies quality gate: names scoring below 40 are dropped
Output: list[NameResult] sorted by composite score descending
| # | Strategy | Example |
|---|---|---|
| 1 | DIRECT | Seeds that already meet length requirements |
| 2 | PREFIX | get + seed β getdata, open + seed β openflow |
| 3 | SUFFIX | seed + hub β datahub, seed + base β flowbase |
| 4 | COMPOUND | seed + seed β cloudstream |
| 5 | BLEND | Portmanteau of two seeds β nexagen |
| 6 | MUTATION | Vowel-drop / consonant swap β datx, flwio |
| 7 | POWER_ENDING | Vowel-stripped seed + power suffix β -ex, -ix, -on |
| 8 | SOFT_ENDING | seed + soft suffix β -ly, -fy, -io, -al, -ara |
| 9 | TRUNCATE | Shortened form β datacenter β datacen |
| 10 | ACRONYM | Initials of multi-word seeds β nexio |
| # | Strategy | Example |
|---|---|---|
| 1 | VOWEL_DROP | data β dta |
| 2 | VOWEL_REPLACE | nexus β noxus |
| 3 | CONSONANT_SWAP | kore β core |
| 4 | PHONEME_SUB | phone β fone |
| 5 | POWER_ENDING | cloud β cloudex |
| 6 | SOFT_ENDING | data β datalia |
| 7 | LETTER_DOUBLE | nova β novva |
| 8 | SYLLABLE_DROP | Remove weakest syllable from long words |
| 9 | INITIAL_SHIFT | base β vase / dase |
| 10 | X_INFUSION | core β xcore / corex |
| 11 | REVERSE_BLEND | data + flow β taflow |
| 12 | COMPRESS | cloud β clud |
Each candidate is scored on four dimensions and combined into a single composite score from 0 to 100.
| Dimension | Weight | What It Measures |
|---|---|---|
| Pronounceability | 30% | Vowel-consonant balance, alternation, syllable rhythm, cluster complexity |
| Memorability | 30% | Length fitness, phonetic uniqueness, syllable count, pattern regularity |
| Uniqueness | 20% | Distance from common words, blacklist, and known trademarks |
| Length Fitness | 20% | Penalty for names outside the ideal 4β8 character range |
| Tier | Score Range | Indicator |
|---|---|---|
| PREMIUM | 90 β 100 | β |
| STRONG | 75 β 89 | β² |
| DECENT | 60 β 74 | β |
| WEAK | 40 β 59 | βΌ |
| POOR | 0 β 39 | β β filtered out before display |
Score weights are configurable in ~/.nexagen/settings.toml under [score_weights].
Profiles bias the synonym vocabulary, preferred TLDs, pattern weights, and blacklist thresholds toward a specific industry vertical.
| Profile | Flag value | Focus |
|---|---|---|
| Generic | generic |
Balanced defaults β no bias |
| Tech | tech |
Developer tools, infrastructure |
| AI | ai |
Machine learning, neural, model |
| Security | security |
Cyber, defence, zero-trust |
| Finance | finance |
Fintech, ledger, payments |
| Health | health |
Medtech, wellness, clinical |
| Social | social |
Community, network, connect |
| Education | education |
Learning, courses, knowledge |
| Document | document |
Docs, notes, productivity |
nexagen --generate payments ledger --profile finance
nexagen -g model inference serving -p aiStyle modes control which pattern and mutation strategies are enabled and what length preferences are applied.
| Style | Flag value | Character |
|---|---|---|
| Minimal | minimal |
Short, clean names (4β6 chars); DIRECT, PREFIX, SUFFIX, TRUNCATE |
| Futuristic | futuristic |
Sci-fi feel; POWER_ENDING, X_INFUSION, PHONEME_SUB, BLEND |
| Aggressive | aggressive |
Hard, strong names; COMPOUND, POWER_ENDING, INITIAL_SHIFT |
| Soft | soft |
Vowel endings, approachable; SOFT_ENDING, VOWEL_REPLACE, BLEND |
| Technical | technical |
Precise, compound; PREFIX, SUFFIX, COMPOUND, ACRONYM |
| Luxury | luxury |
Short, premium; TRUNCATE, BLEND, POWER_ENDING, VOWEL_REPLACE |
nexagen --generate cloud deploy --style futuristic
nexagen -g health wellness --profile health --style softDomain checks use RDAP (the modern replacement for WHOIS) via rdap.org. Results are cached locally in ~/.nexagen/cache/domains/ with a 1-hour TTL to avoid redundant network calls.
TLDs are scored from 1β100 based on perceived brand value and recognition. The score influences how domain results are sorted and recommended.
| Score | TLDs |
|---|---|
| 100 | .com |
| 80β85 | .io, .ai |
| 70β79 | .co, .dev |
| 60β69 | .app, .tech, .cloud |
| 50β59 | .build, .hub, .labs, .net |
| 40β49 | .tools, .run, .studio, .org, .online, .health, .finance |
| 20β39 | .site, .digital, .works, .world, .space, .xyz, .me, .ly, .gg, .so |
Full list of checked TLDs: com io ai co dev app tech cloud build tools run systems net org online site digital works world space center group software platform solutions services network hub labs link studio agency design health finance xyz me ly gg so
For each brand name, NEXAGEN generates multiple domain variants before checking:
- Bare name across all preferred TLDs:
nexagen.io,nexagen.ai, etc. - Prefix variants:
getnexagen.com,trynexagen.com,usenexagen.com - Suffix variants:
nexagenhq.com,nexagenlabs.io,nexagenapp.co
| Icon | Status | Meaning |
|---|---|---|
| β | FREE | Domain is available to register |
| β | TAKEN | Domain is registered (RDAP body confirmed) |
| ? | UNKNOWN | RDAP returned an ambiguous response β re-check manually |
Note: TAKEN requires both an HTTP 200 response and a valid RDAP domain object in the body. Some registries incorrectly return HTTP 200 for unregistered domains. NEXAGEN validates the response body against RFC 9083 before declaring a domain TAKEN β missing
objectClassName,status, or domain identifier fields will produce UNKNOWN instead of a false positive.
Handle availability is checked concurrently across five platforms using their public APIs.
| Platform | API Endpoint | What Is Checked |
|---|---|---|
| GitHub | api.github.com/users/{handle} |
User or organisation name |
| PyPI | pypi.org/pypi/{package}/json |
Package name |
| npm | registry.npmjs.org/{package} |
Package name |
| Docker Hub | hub.docker.com/v2/users/{name} |
User or organisation name |
| Hugging Face | huggingface.co/api/users/{name} |
User or organisation name |
All five checks run in parallel. Results are included in the domain table output and in all export formats.
Platform checks can be toggled individually in ~/.nexagen/settings.toml:
check_github = true
check_pypi = true
check_npm = true
check_docker = true
check_huggingface = trueNEXAGEN can write results to ~/.nexagen/exports/ in three formats.
| Format | Flag | File | Contents |
|---|---|---|---|
| JSON | json |
nexagen_YYYYMMDD_HHMMSS.json |
Full structured report with all scores, domains, platforms, and metadata |
| CSV | csv |
nexagen_YYYYMMDD_HHMMSS.csv |
Excel-compatible flat table β one row per name candidate |
| Markdown | markdown |
nexagen_YYYYMMDD_HHMMSS.md |
Human-readable report with tables and domain/platform sections |
| All | all |
All three files | All formats written simultaneously |
Export format is set in settings or triggered from the interactive menu after any generation run.
# ~/.nexagen/settings.toml
export_format = "all" # json | csv | markdown | all
auto_export = false # write automatically after every runSettings are stored in ~/.nexagen/settings.toml and created automatically on first run. All values have sensible defaults β the file only needs to exist if you want to change something.
# Generation
profile = "generic" # tech | ai | security | finance | health | social | education | document | generic
style_mode = "minimal" # minimal | futuristic | aggressive | soft | technical | luxury
count = 20 # default names to generate (max 200)
min_len = 4 # minimum name length
max_len = 8 # maximum name length
use_suffixes = true
use_prefixes = true
use_synonyms = true
# Domain checks
do_domain_checks = true
do_handle_checks = true
check_workers = 12 # parallel workers
check_timeout = 8.0 # seconds per request
preferred_tlds = ["com", "io", "ai", "co", "dev"]
# Platform checks
check_github = true
check_pypi = true
check_npm = true
check_docker = true
check_huggingface = true
# Display
color_theme = "cyberpunk" # cyberpunk | light | mono
animations = true
table_row_limit = 30
# Export
export_format = "json" # json | csv | markdown | all
auto_export = false
export_dir = "~/.nexagen/exports"
# Cache
cache_enabled = true
cache_ttl_seconds = 3600
# Score weights (must sum to 1.0)
[score_weights]
pronounce = 0.30
memorability = 0.30
uniqueness = 0.20
length_fit = 0.20Environment variables override the corresponding settings file values.
| Variable | Type | Default | Description |
|---|---|---|---|
NEXAGEN_PROFILE |
string | generic |
Default industry profile |
NEXAGEN_STYLE |
string | minimal |
Default style mode |
NEXAGEN_COUNT |
int | 20 |
Default generation count |
NEXAGEN_NO_ANIM |
0/1 |
0 |
Disable animations globally |
NEXAGEN_NO_CLEAR |
0/1 |
0 |
Disable screen clear on startup |
NEXAGEN_NO_DOMAIN |
0/1 |
0 |
Disable domain checks |
NEXAGEN_NO_HANDLE |
0/1 |
0 |
Disable platform handle checks |
NEXAGEN_EXPORT_DIR |
path | ~/.nexagen/exports |
Export output directory |
NEXAGEN_CACHE_DIR |
path | ~/.nexagen/cache |
Cache directory |
NEXAGEN_LOG_LEVEL |
string | WARNING |
Logging level: DEBUG, INFO, WARNING, ERROR |
NEXAGEN_THEME |
string | cyberpunk |
UI colour theme |
nexagen/
βββ nexagen/
β βββ analysis/
β β βββ brand_score.py # Composite scorer β 4-dimension weighted scoring
β β βββ collision_detection.py # Exact, fuzzy, phonetic, substring collision checks
β β βββ phonetic_analysis.py # 9-dimension phonetic profile
β β βββ uniqueness_score.py # Blacklist distance and originality scoring
β βββ checks/
β β βββ platform_dispatcher.py # Unified platform check router
β β βββ github_check.py # GitHub user/org availability
β β βββ pypi_check.py # PyPI package availability
β β βββ npm_check.py # npm package availability
β β βββ docker_check.py # Docker Hub availability
β βββ cli/
β β βββ app.py # Entry point β CLI argument parsing
β β βββ commands.py # All command implementations
β β βββ menu.py # Interactive menu loop
β β βββ help.py # Help text and usage strings
β βββ config/
β β βββ constants.py # All static constants β never changes at runtime
β β βββ settings.py # Runtime settings with TOML persistence
β βββ datasets/
β β βββ synonyms.txt # Synonym graph
β β βββ tech_terms.txt # Tech vocabulary
β β βββ ai_terms.txt # AI/ML vocabulary
β β βββ business_terms.txt # Business vocabulary
β β βββ common_words.txt # Common word filter list
β β βββ brand_blacklist.txt # Trademark collision list
β β βββ prefixes.txt # Brand prefix list
β β βββ suffixes.txt # Brand suffix list
β β βββ tlds.txt # Full TLD list with scores
β βββ domains/
β β βββ domain_checker.py # RDAP availability checking with body validation
β β βββ domain_generator.py # Domain variant generation (prefix/suffix/bare)
β β βββ domain_ranker.py # TLD scoring and portfolio recommendations
β β βββ tld_strategy.py # TLD selection strategy by profile
β βββ engine/
β β βββ keyword_engine.py # Stage 1 β keyword normalisation and scoring
β β βββ synonym_engine.py # Stage 2 β synonym expansion and deduplication
β β βββ pattern_engine.py # Stage 3 β 10 macro-level pattern strategies
β β βββ mutation_engine.py # Stage 4 β 12 character-level mutation strategies
β β βββ name_generator.py # Stage 5 β orchestrates pipeline, scores, ranks
β βββ export/
β β βββ report_builder.py # Report assembly and multi-format dispatch
β β βββ json_export.py # JSON export writer
β β βββ csv_export.py # CSV export writer
β β βββ markdown_export.py # Markdown report writer
β βββ ui/
β β βββ animations.py # Rich-powered spinners, boot sequence, reveal
β β βββ banner.py # Section headers, logo, about screen
β β βββ progress.py # DomainCheckProgress, GenerationProgress
β β βββ tables.py # Results tables β names, domains, platforms
β β βββ theme.py # Colour theme definitions
β βββ utils/
β βββ dataset_loader.py # Dataset file loading with caching
β βββ levenshtein.py # Damerau-Levenshtein implementation
β βββ text_utils.py # String helpers β blend, truncate, phonetic
β βββ validators.py # Input validation helpers
βββ tests/
β βββ test_generation.py # Generation pipeline tests
β βββ test_scoring.py # Brand scorer tests
β βββ test_domains.py # Domain checker tests
βββ docs/
β βββ architecture.md # Layer diagram and design decisions
β βββ usage.md # Extended usage guide
βββ assets/
β βββ nexagen-logo.png
βββ pyproject.toml
βββ setup.cfg
βββ LICENSE
βββ README.md
# Install dev dependencies
pip install -e ".[dev]"
# Run all tests
pytest
# Run with coverage report
pytest --cov=nexagen --cov-report=term-missing
# Run a specific module
pytest tests/test_generation.py
pytest tests/test_scoring.py
pytest tests/test_domains.py
# Run only fast tests (skip network checks)
pytest -m "not network"| Module | Lines | Responsibility |
|---|---|---|
cli/commands.py |
~1,330 | All command implementations |
engine/pattern_engine.py |
~750 | 10 pattern generation strategies |
ui/banner.py |
~730 | Logo, sections, about screen |
ui/animations.py |
~695 | Spinners, boot sequence, reveal |
engine/mutation_engine.py |
~680 | 12 mutation strategies |
ui/progress.py |
~650 | Progress bars and check trackers |
domains/domain_checker.py |
~654 | RDAP checks and cache |
domains/tld_strategy.py |
~717 | TLD strategy by profile |
config/constants.py |
~600 | All static constants |
analysis/brand_score.py |
~580 | 4-dimension composite scorer |
engine/name_generator.py |
~560 | Pipeline orchestration |
domains/domain_generator.py |
~551 | Domain variant generation |
analysis/collision_detection.py |
~540 | Collision signal detection |
domains/domain_ranker.py |
~541 | TLD scoring and ranking |
ui/tables.py |
~731 | Results table rendering |
NEXAGEN is a project by CyberEmpireX (CEX), part of the CEX ecosystem.
-
Community: t.me/nexagen_community
-
Issues & feature requests: github.com/cyberempirex/nexagen/issues
-
Documentation: docs/usage.md
NEXAGEN is provided as-is for research and creative use. Final responsibility for name selection, trademark clearance, and domain registration lies with the user..
Built by CyberEmpireX Β· MIT License Β· v1.0.0