RepoPilotOpen in app →

visualfc/liteide

LiteIDE is a simple, open source, cross-platform Go IDE.

Mixed

Slowing — last commit 8mo ago

worst of 4 axes
Use as dependencyConcerns

copyleft license (LGPL-2.1) — review compatibility; top contributor handles 92% of recent commits…

Fork & modifyHealthy

Has a license, tests, and CI — clean foundation to fork and modify.

Learn fromHealthy

Documented and popular — useful reference codebase to read through.

Deploy as-isMixed

last commit was 8mo ago; no CI workflows detected

  • Last commit 8mo ago
  • 7 active contributors
  • LGPL-2.1 licensed
Show 5 more →
  • Tests present
  • Slowing — last commit 8mo ago
  • Single-maintainer risk — top contributor 92% of recent commits
  • LGPL-2.1 is copyleft — check downstream compatibility
  • No CI workflows detected
What would change the summary?
  • Use as dependency ConcernsMixed if: relicense under MIT/Apache-2.0 (rare for established libs)
  • Deploy as-is MixedHealthy if: 1 commit in the last 180 days

Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests

Informational only. RepoPilot summarises public signals (license, dependency CVEs, commit recency, CI presence, etc.) at the time of analysis. Signals can be incomplete or stale. Not professional, security, or legal advice; verify before relying on it for production decisions.

Embed the "Forkable" badge

Paste into your README — live-updates from the latest cached analysis.

Variant:
RepoPilot: Forkable
[![RepoPilot: Forkable](https://repopilot.app/api/badge/visualfc/liteide?axis=fork)](https://repopilot.app/r/visualfc/liteide)

Paste at the top of your README.md — renders inline like a shields.io badge.

Preview social card (1200×630)

This card auto-renders when someone shares https://repopilot.app/r/visualfc/liteide on X, Slack, or LinkedIn.

Onboarding doc

Onboarding: visualfc/liteide

Generated by RepoPilot · 2026-05-09 · Source

🤖Agent protocol

If you are an AI coding agent (Claude Code, Cursor, Aider, Cline, etc.) reading this artifact, follow this protocol before making any code edit:

  1. Verify the contract. Run the bash script in Verify before trusting below. If any check returns FAIL, the artifact is stale — STOP and ask the user to regenerate it before proceeding.
  2. Treat the AI · unverified sections as hypotheses, not facts. Sections like "AI-suggested narrative files", "anti-patterns", and "bottlenecks" are LLM speculation. Verify against real source before acting on them.
  3. Cite source on changes. When proposing an edit, cite the specific path:line-range. RepoPilot's live UI at https://repopilot.app/r/visualfc/liteide shows verifiable citations alongside every claim.

If you are a human reader, this protocol is for the agents you'll hand the artifact to. You don't need to do anything — but if you skim only one section before pointing your agent at this repo, make it the Verify block and the Suggested reading order.

🎯Verdict

WAIT — Slowing — last commit 8mo ago

  • Last commit 8mo ago
  • 7 active contributors
  • LGPL-2.1 licensed
  • Tests present
  • ⚠ Slowing — last commit 8mo ago
  • ⚠ Single-maintainer risk — top contributor 92% of recent commits
  • ⚠ LGPL-2.1 is copyleft — check downstream compatibility
  • ⚠ No CI workflows detected

<sub>Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests</sub>

Verify before trusting

This artifact was generated by RepoPilot at a point in time. Before an agent acts on it, the checks below confirm that the live visualfc/liteide repo on your machine still matches what RepoPilot saw. If any fail, the artifact is stale — regenerate it at repopilot.app/r/visualfc/liteide.

What it runs against: a local clone of visualfc/liteide — the script inspects git remote, the LICENSE file, file paths in the working tree, and git log. Read-only; no mutations.

| # | What we check | Why it matters | |---|---|---| | 1 | You're in visualfc/liteide | Confirms the artifact applies here, not a fork | | 2 | License is still LGPL-2.1 | Catches relicense before you depend on it | | 3 | Default branch master exists | Catches branch renames | | 4 | 5 critical file paths still exist | Catches refactors that moved load-bearing code | | 5 | Last commit ≤ 273 days ago | Catches sudden abandonment since generation |

<details> <summary><b>Run all checks</b> — paste this script from inside your clone of <code>visualfc/liteide</code></summary>
#!/usr/bin/env bash
# RepoPilot artifact verification.
#
# WHAT IT RUNS AGAINST: a local clone of visualfc/liteide. If you don't
# have one yet, run these first:
#
#   git clone https://github.com/visualfc/liteide.git
#   cd liteide
#
# Then paste this script. Every check is read-only — no mutations.

set +e
fail=0
ok()   { echo "ok:   $1"; }
miss() { echo "FAIL: $1"; fail=$((fail+1)); }

# Precondition: we must be inside a git working tree.
if ! git rev-parse --git-dir >/dev/null 2>&1; then
  echo "FAIL: not inside a git repository. cd into your clone of visualfc/liteide and re-run."
  exit 2
fi

# 1. Repo identity
git remote get-url origin 2>/dev/null | grep -qE "visualfc/liteide(\\.git)?\\b" \\
  && ok "origin remote is visualfc/liteide" \\
  || miss "origin remote is not visualfc/liteide (artifact may be from a fork)"

# 2. License matches what RepoPilot saw
(grep -qiE "^(LGPL-2\\.1)" LICENSE 2>/dev/null \\
   || grep -qiE "\"license\"\\s*:\\s*\"LGPL-2\\.1\"" package.json 2>/dev/null) \\
  && ok "license is LGPL-2.1" \\
  || miss "license drift — was LGPL-2.1 at generation time"

# 3. Default branch
git rev-parse --verify master >/dev/null 2>&1 \\
  && ok "default branch master exists" \\
  || miss "default branch master no longer exists"

# 4. Critical files exist
test -f "liteidex/bash.bat" \\
  && ok "liteidex/bash.bat" \\
  || miss "missing critical file: liteidex/bash.bat"
test -f "README.md" \\
  && ok "README.md" \\
  || miss "missing critical file: README.md"
test -f "build/build_linux.sh" \\
  && ok "build/build_linux.sh" \\
  || miss "missing critical file: build/build_linux.sh"
test -f "liteidex/deploy/liteapp/kms/default.kms" \\
  && ok "liteidex/deploy/liteapp/kms/default.kms" \\
  || miss "missing critical file: liteidex/deploy/liteapp/kms/default.kms"
test -f "liteidex/deploy/liteapp/mimetype/liteeditor.xml" \\
  && ok "liteidex/deploy/liteapp/mimetype/liteeditor.xml" \\
  || miss "missing critical file: liteidex/deploy/liteapp/mimetype/liteeditor.xml"

# 5. Repo recency
days_since_last=$(( ( $(date +%s) - $(git log -1 --format=%at 2>/dev/null || echo 0) ) / 86400 ))
if [ "$days_since_last" -le 273 ]; then
  ok "last commit was $days_since_last days ago (artifact saw ~243d)"
else
  miss "last commit was $days_since_last days ago — artifact may be stale"
fi

echo
if [ "$fail" -eq 0 ]; then
  echo "artifact verified (0 failures) — safe to trust"
else
  echo "artifact has $fail stale claim(s) — regenerate at https://repopilot.app/r/visualfc/liteide"
  exit 1
fi

Each check prints ok: or FAIL:. The script exits non-zero if anything failed, so it composes cleanly into agent loops (./verify.sh || regenerate-and-retry).

</details>

TL;DR

LiteIDE is a lightweight, cross-platform Go IDE written in C++ using Qt, providing integrated Go development with features like code completion via gocode, debugging with GDB/Delve, Go module support (1.11+), and generics awareness (Go 1.18+). It solves the problem of Go developers needing a simple, fast IDE without the overhead of heavier alternatives like VS Code or GoLand. Monolithic C++/Qt application: core IDE in liteidex/ (not fully visible in file list), plugin system for extensibility, build/ directory contains 40+ deployment/build scripts for cross-platform distribution, integrated tools like gocode clone and gomodifytags. No microservices or modular separation visible—single binary distribution model.

👥Who it's for

Go developers (especially beginners and those on lower-spec systems) who want a minimal, self-contained IDE that works on Windows, macOS, Linux, FreeBSD, and OpenBSD without external language server dependencies. Contributors maintaining the plugin system, build scripts, and Go-specific features.

🌱Maturity & risk

Actively maintained but niche: at version X38.4 with recent support for Go 1.18–1.21 features. The build directory contains platform-specific scripts for Qt4/Qt5 across 8+ OS variants, indicating production maturity. However, dominance of C++ (3.1M LOC) over Go (13K LOC) and lack of visible CI/test automation in file list suggest testing depth is unclear.

Single maintainer risk (visualfc@gmail.com as sole listed author) with no visible GitHub Actions CI in .github. Build system is brittle: 40+ shell/batch scripts for different Qt versions and OS combos create maintenance burden. Last commit recency unknown from file list, but the breadth of unmaintained build variants (Qt4, 32-bit Linux) suggests technical debt.

Active areas of work

Ongoing Go version support updates (1.18 generics, go.work, 1.11+ modules). Build script maintenance for multiple Qt versions and platforms. No active PR/issue backlog visible in file list—development pace unclear.

🚀Get running

git clone https://github.com/visualfc/liteide.git
cd liteide
# Choose platform-specific build script, e.g., for Linux Qt5:
bash build/build_linux_qt5.sh
# Or macOS Qt5:
bash build/build_macos_qt5.sh

Requires Qt SDK (4.8+ or 5.x) and Go toolchain installed.

Daily commands: After building (via platform-specific script in build/), the binary is standalone. Launch: ./liteide [files|folder] [--select-env id] [--local-setting] [--user-setting] [--reset-setting]. No external services required; self-contained Qt application.

🗺️Map of the codebase

  • liteidex/bash.bat — Entry point script that initializes the LiteIDE environment and likely configures build paths for Windows systems.
  • README.md — Documents core features, version, Go compatibility (1.18-1.21), and module system support—essential context for understanding IDE capabilities.
  • build/build_linux.sh — Primary Linux build orchestration script; reveals build system structure and Qt version dependencies critical for cross-platform compilation.
  • liteidex/deploy/liteapp/kms/default.kms — Default keymap/settings configuration that defines IDE behavior; crucial for understanding plugin initialization and runtime defaults.
  • liteidex/deploy/liteapp/mimetype/liteeditor.xml — MIME type definition for the core editor; defines file type associations and editor activation logic.
  • .github/FUNDING.yml — Project sponsorship/funding configuration; indicates project sustainability model and community support channels.
  • CONTRIBUTORS — Credits file that documents major contributors and community structure; essential for understanding project governance.

🛠️How to make changes

Add a New UI Theme

  1. Create a new QSS (Qt Stylesheet) file in the qss directory following naming convention (e.g., 'mytheme.qss') (liteidex/deploy/liteapp/qss/mytheme.qss)
  2. Define Qt widget styles using QSS syntax, inheriting color schemes from existing themes like default.qss as reference (liteidex/deploy/liteapp/qss/default.qss)
  3. Register the theme in the IDE's theme configuration by ensuring it appears in the theme selector through plugin discovery or default.kms (liteidex/deploy/liteapp/kms/default.kms)

Create a New Project Template

  1. Create a new directory under liteidex/deploy/liteapp/template/[templatename]/ following naming convention (e.g., 'gowebapp') (liteidex/deploy/liteapp/template/gocmd)
  2. Add a setup.inf file that defines template metadata (name, category, description) following the pattern in gocmd (liteidex/deploy/liteapp/template/gocmd/setup.inf)
  3. Create boilerplate files (e.g., main.go, doc.go) in a 'root' subdirectory; LiteIDE will instantiate these during project creation (liteidex/deploy/liteapp/template/gocmd/main.go)

Define MIME Type Support for New File Format

  1. Create a new XML file in liteidex/deploy/liteapp/mimetype/ (e.g., 'newformat.xml') defining file patterns and editor associations (liteidex/deploy/liteapp/mimetype/liteeditor.xml)
  2. Specify filename patterns, file extensions, and editor mode activation rules using XML elements similar to existing MIME definitions (liteidex/deploy/liteapp/mimetype/gopackage.xml)
  3. The IDE's plugin system will auto-discover the MIME type and register it; verify via theme/editor settings in kms configuration (liteidex/deploy/liteapp/kms/default.kms)

Update Cross-Platform Build Configuration

  1. Edit the appropriate platform-specific build script (e.g., build_linux.sh for Linux) to add new Qt dependencies or flags (build/build_linux.sh)
  2. For Windows builds, update the corresponding .cmd file and ensure environment variables are set in vars*.cmd files (build/vars5.15.2.cmd)
  3. Test the build on target platform; update deployment script (e.g., deploy_linux_x64_qt5.sh) to package new artifacts (build/deploy_linux_x64_qt5.sh)

🔧Why these technologies

  • Qt Framework (4.x & 5.x) — Cross-platform GUI foundation enabling single codebase deployment on Linux, macOS, Windows, and BSD; supports stylesheets (QSS) for theming.
  • Go (1.18–1.21+) — Primary language support with full toolchain integration; IDE manages GOPATH, Go modules, vendors, and workspace (go.work) configurations.
  • Plugin Architecture — Modular extensibility allowing independent feature development (editor modes, themes, build commands) without monolithic core.
  • MIME Type Registry (XML-based) — Lightweight, human-readable file association system enabling editor mode selection and file type-specific behavior without binary registration.
  • Build Scripts (Shell & Batch) — Minimal CI/CD approach using platform-native scripts for reproducible, dependency-isolated builds across OS variants.

⚖️Trade-offs already made

  • Qt 4.x and 5.x dual support with separate build paths

    • Why: Qt 4 remains available on legacy systems; Qt 5 offers modern features. Parallel maintenance adds build complexity but ensures broad OS coverage.
    • Consequence: Build matrix explosions; maintainers must test multiple Qt/platform combinations. Deployment scripts become numerous and hard to synchronize.
  • Configuration via static XML/INF files in deploy directory rather than runtime database

    • Why: Portable, versionable, human-editable configuration; no external dependencies or database initialization.
    • Consequence: Configuration changes require IDE restart; no dynamic hot-reload of themes or keymaps without plugin reloading.
  • Direct invocation of system Go toolchain (go build, go test) rather than

    • Why: undefined
    • Consequence: undefined

🪤Traps & gotchas

Build system is script-based without modern CMake/Meson—requires correct Qt SDK version in PATH (Qt4 vs Qt5 scripts are separate; mixing breaks build). Go toolchain must be in PATH and match IDE's expectations (GOPATH vs modules detection). Cross-platform binaries require building on target OS (no cross-compilation scripts visible). Plugin system likely requires specific C++ linkage conventions and version pinning not documented in visible files.

🏗️Architecture

💡Concepts to learn

  • MIME Type Management — LiteIDE's core feature system depends on MIME type routing to dispatch editor features (syntax highlighting, code completion, build rules) to correct plugins; understanding MIME dispatch is essential for extending IDE capabilities
  • Go Module System (go.mod / go.work) — LiteIDE explicitly supports Go 1.11+ modules, 1.18 workspaces, and legacy GOPATH; core IDE feature selection depends on detected module mode, affecting build and completion behavior
  • Language Server Protocol (implied via guru integration) — LiteIDE integrates Go guru for 'source query tools' and 'find usages'; understanding how the IDE communicates with external Go analysis tools clarifies extensibility boundaries
  • Qt Plugin Architecture — LiteIDE's extensibility depends entirely on Qt's plugin system; adding editors, build tools, or language features requires understanding Qt's IID registration and dynamic loading patterns
  • GDB/Delve Protocol Wrapping — IDE debugging support wraps external debuggers (GDB and Delve); understanding how the IDE marshals breakpoints, watchpoints, and stack frames between UI and debugger CLI improves debug feature additions
  • GOPATH vs Go Modules Build Environment Management — LiteIDE supports custom GOPATH at system/IDE/project level and module workspaces; build script generation and tool invocation depend on correctly detecting and applying the active environment mode
  • Cross-Platform Binary Distribution (AppImage, DMG, ZIP) — Build/ directory reveals deployment patterns for 5+ OS/architecture combos; understanding bundling (static linking, Qt resources, dependency packaging) is critical for maintaining platform support
  • golang/vscode-go — Modern alternative Go IDE/extension; shows language server protocol and async debugging patterns vs LiteIDE's embedded tooling
  • golangci/golangci-lint — Go linting/analysis tool ecosystem that complements IDE build integration; LiteIDE likely uses guru for similar purposes
  • derekparker/delve — Go debugger that LiteIDE integrates; core debugging backend referenced in feature list
  • visualfc/gocode — Embedded completion engine; LiteIDE maintains a clone of nsf/gocode for code completion
  • fatih/gomodifytags — Struct tag manipulation tool integrated into LiteIDE; demonstrates plugin pattern for Go-specific refactoring

🪄PR ideas

To work on one of these in Claude Code or Cursor, paste: Implement the "<title>" PR idea from CLAUDE.md, working through the checklist as the task list.

Add GitHub Actions workflow for cross-platform builds

LiteIDE has extensive build scripts for multiple platforms (Windows, Linux, macOS, FreeBSD, etc.) in build/ directory, but no CI/CD automation. A GitHub Actions workflow would validate builds across platforms on each PR, catching platform-specific regressions early. This is especially valuable given the complexity of supporting Qt4/Qt5 variants and multiple architectures (x32, x64).

  • [ ] Create .github/workflows/build.yml to run build/build_linux_qt5.sh, build/build_macos_qt5.sh on Linux and macOS runners
  • [ ] Add matrix strategy to test multiple Qt versions (Qt4, Qt5) where applicable
  • [ ] Document in README.md how to trigger local builds matching CI environment
  • [ ] Ensure workflow handles Qt dependency installation via apt/brew

Create BUILDING.md with platform-specific setup instructions

The build/ directory contains 30+ scripts with cryptic names (build_linux_debian72_x64.sh, deploy_linux_x64_qt5.5.sh) but README.md lacks any build instructions. New contributors cannot determine which script to use, what dependencies are needed, or how to build for their platform. This documentation gap creates high friction for contributions.

  • [ ] Document prerequisite dependencies for Linux (Qt5-dev, Go, gcc), macOS (Qt, Xcode), Windows (MinGW/MSVC, Qt)
  • [ ] Add table mapping build scripts to target platforms/architectures/Qt versions
  • [ ] Include step-by-step build instructions for the 3 major platforms (Linux, macOS, Windows)
  • [ ] Reference vars*.cmd/.sh files and explain their role in the build process
  • [ ] Add troubleshooting section for common build failures

Add automated translation/localization update CI check

The build/ directory contains update_tr.sh, update_ts.sh, and update_tr.cmd scripts that manage translations, but there's no validation that these are kept in sync with source code changes. Contributors might forget to update .ts files when adding UI strings, causing translation drift. A GitHub Actions workflow could flag missing translation updates.

  • [ ] Create .github/workflows/translations.yml that runs build/update_ts.sh and checks for uncommitted changes
  • [ ] Configure workflow to fail if .ts translation files are not updated when source strings change
  • [ ] Add check to validate .ts files are properly formatted (using Qt's lrelease or similar)
  • [ ] Document in CONTRIBUTING.md (if exists, else create) that translations must be updated before PR merge

🌿Good first issues

  • Add automated CI/CD pipeline: create .github/workflows/*.yml for Linux (Qt5), macOS (Qt5), and Windows (MSVC) to replace 40+ manual build scripts and provide test coverage verification.
  • Modernize Go version support documentation: create docs/GO_VERSIONS.md with explicit matrix of tested Go versions (1.11–1.21) and integration test cases for module/vendor/GOPATH workflows.
  • Implement unit tests for core IDE features: add tests/ directory with C++ unit tests for gocode integration, syntax highlighting rules, and configuration parsing—currently no test suite visible in file list.

Top contributors

Click to expand

📝Recent commits

Click to expand
  • 6c0660a — Merge pull request #1331 from TheLucasAdam/patch-1 (visualfc)
  • 19b45c9 — Update website.md (TheLucasAdam)
  • d7bee3a — litebuild: filebuild (visualfc)
  • cba1836 — Merge pull request #1193 from allwaysoft/patch-1 (visualfc)
  • f7cd58f — Merge pull request #1325 from tabudz/fix-CVE-2020-8287 (visualfc)
  • 171ebfe — Merge pull request #1326 from npt-1707/fix-CVE-2018-20786 (visualfc)
  • 0f0e89c — x (visualfc)
  • b9cd17b — ver x38.4 (visualfc)
  • d301c25 — Fix crash when out of memory while opening a terminal window: Handle out-of-memory more gracefully. (npt-1707)
  • bd3949e — http: unset F_CHUNKED on new Transfer-Encoding (tabudz)

🔒Security observations

LiteIDE appears to be a moderately secure open-source project. The main security concerns are related to script execution in build processes (shell and batch scripts), potential SQL injection in the SQL editor component, and the plugin system's security model. The project follows LGPL licensing and maintains good open-source practices with visible contributor information. No obvious hardcoded secrets or exposed credentials were found in the file structure. Critical improvements should focus on: (1) securing build/deploy scripts against injection attacks, (2) ensuring SQL queries are parameterized, and (3) implementing a secure plugin loading and validation mechanism. Since this is a desktop IDE and not a web application, many web-specific vulnerabilities are not applicable.

  • Medium · Potential SQL Injection Risk in QSQLEditor — liteidex/deploy/liteapp/mimetype/qsqleditor.xml. The presence of 'qsqleditor.xml' MIME type configuration suggests SQL query execution capabilities. Without reviewing the actual source code, there's a risk of SQL injection if user input is not properly parameterized when constructing SQL queries. Fix: Ensure all SQL queries use prepared statements with parameterized queries. Never concatenate user input directly into SQL statements. Implement input validation and sanitization.
  • Medium · Shell Script Security in Build/Deploy — build/*.sh files (build_*.sh, deploy_*.sh, update_*.sh). Multiple shell scripts in the build directory execute potentially complex operations. These scripts may be vulnerable to command injection or unsafe variable expansion if they process user-supplied input without proper escaping. Fix: Review all shell scripts for proper input validation and sanitization. Use quotes around variables, avoid eval, and use shellcheck for static analysis. Ensure scripts follow secure coding practices.
  • Medium · Batch Script Security in Windows Builds — liteidex/bash.bat, build/*.cmd files. Windows batch and command files (.cmd, .bat) in the build directory may contain security risks related to command injection or improper variable handling. Fix: Review batch scripts for proper escaping and validation. Use delayed expansion carefully. Implement input validation before executing any commands.
  • Low · Hardcoded Configuration Files — liteidex/deploy/liteapp/. Various configuration files (.qss, .xml, .kms) are included in the deploy directory. While these are primarily UI/configuration data, they should be reviewed for any hardcoded sensitive information or unsafe defaults. Fix: Review all configuration files for hardcoded credentials, API keys, or sensitive data. Use environment variables or secure configuration management for any sensitive settings.
  • Low · Missing Security Headers Configuration — Project-wide configuration. No evidence of security headers or Content Security Policy configuration in the provided file structure. This is relevant if LiteIDE has any web-based components or remote functionality. Fix: If the application has any web-facing components, implement appropriate security headers (CSP, X-Content-Type-Options, X-Frame-Options, etc.).
  • Low · Potential Code Execution via Plugin System — Plugin system (source code not visible). The plugin system mentioned in features could be a vector for code execution if plugin loading and validation is not properly implemented. Fix: Implement secure plugin loading mechanisms: verify plugin signatures, run plugins with minimal privileges, validate plugin manifests, and implement a whitelist/approval system for plugins.

LLM-derived; treat as a starting point, not a security audit.


Generated by RepoPilot. Verdict based on maintenance signals — see the live page for receipts. Re-run on a new commit to refresh.

Mixed signals · visualfc/liteide — RepoPilot