{"id":16762457,"url":"https://github.com/tlack/node-web-repl","last_synced_at":"2025-04-10T18:12:38.465Z","repository":{"id":4046643,"uuid":"5148707","full_name":"tlack/node-web-repl","owner":"tlack","description":"A web-based REPL that you can add to your Node.js apps","archived":false,"fork":false,"pushed_at":"2017-04-29T20:28:03.000Z","size":4504,"stargazers_count":10,"open_issues_count":1,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-04-14T02:19:40.618Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tlack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-07-23T07:21:36.000Z","updated_at":"2021-03-25T08:40:51.000Z","dependencies_parsed_at":"2022-09-16T20:30:18.686Z","dependency_job_id":null,"html_url":"https://github.com/tlack/node-web-repl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tlack%2Fnode-web-repl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tlack%2Fnode-web-repl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tlack%2Fnode-web-repl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tlack%2Fnode-web-repl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tlack","download_url":"https://codeload.github.com/tlack/node-web-repl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248269297,"owners_count":21075779,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-13T04:44:47.426Z","updated_at":"2025-04-10T18:12:38.449Z","avatar_url":"https://github.com/tlack.png","language":"JavaScript","readme":"Node Web REPL\n=============\n\n![Screenshot](http://www.modernmethod.com/send/files/node-web-repl-screenshot.gif)\n\nThis npm is currently a bit rough, but already has aided some of my debugging\nefforts.\n\nThis npm adds a web-based command line to your Node.js apps. Use this to debug\nyour apps, alter behavior on the fly, review in-app data structures, ruin\neverything, etc. You can event connect to your apps after they've been running\nfor months and see how they're doing.\n\nDemo\n----\n\nHow to use:\n\n\tvar webrepl = require('node-web-repl');\n\t// setup your app as normal\n\twebrepl.createServer({\n\t\tusername: 'admin',\n\t\tpassword: 'blob1010',\n\t\tport: 11911,\n\t\thost: '127.0.0.1'\n\t});\n\nYou'll (hopefully) now have a running web-based REPL on port 11911! Connect and\ntype in '1+2' to do some fun math, or 'globals' to browse the global object. \n\nSee tests/ for a full example. (More examples coming soon.)\n\nArchitecture notes\n------------------\n\nRight now Node Web REPL creates its own Express server instance, instead of\nplugging in to your existing routes. Motivation:\n\n* Your existing app (to which you are adding the REPL) may not use Express.\n* Separating the port numbers makes it safer against scanning (possibly).\n* I can't assume that your Express app is using the same view system that\n  mine is.\n* Eventually, we may stop using Express entirely. Our needs are simple.\n\nThe Future\n----------\n\nGenerally, I'd like Node Web REPL to be the first thing you plug in to your app\nto start debugging once it goes live, and then what you use to build your app's\ninternal dashboard (something every app should have).\n\n* Pass in custom UI elements like counters, scrollable messages (signups), etc.\n* Hook console.log so you can view your console output via a web browser\n* Allow you to pass in custom functions and data to be available in the repl\n(right now you can only access stuff descending from the global scope)\n* UI/UX cleanup - make it look slightly less like garbage, scrollbars, etc\n* Visual data browser (scope out 'global' and descend from there)\n* Profile on the fly\n* View Node.js's memory usage\n* Autocomplete\n* MySQL console?\n* Memcache console?\n* Activity log?\n\nIngredients\n-----------\n\nWe use Node.js, Express, HTTP auth via express.basicAuth middleware, and Hogan\nfor templating. [jcubic-jquery.terminal](http://terminal.jcubic.pl/) is used\nfor the type-in terminal code on the client side. Your input is sent via Ajax\nto the /api endpoint, which eval()'s you code and spits back a string.\n\nAuthor\n------\n\nWritten by Thomas Lackner ([@tlack](http://twitter.com/tlack)) and sponsored\nby [.CO](http://go.co)\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftlack%2Fnode-web-repl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftlack%2Fnode-web-repl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftlack%2Fnode-web-repl/lists"}