Kenya plans 8,000km grid expansion as it woos Chinese clean energy investors
Listen to article
5 min listen
Audio reading is not supported on this browser.
Ready
Thanks for listening. Continue with a related story, or tap the speaker icon on the next page to listen.
Government expands access to National IDs to strengthen inclusion, increase access to opportunities
Mary Wambui
Β Β·Β
4 days agoRead nextOpens a fresh page.
Eng Thomas Karungu, Managing Director and Alternate Director to the Principal Secretary, State Department for Energy, said Kenya is seeking long-term industrial partnerships that will accelerate its clean energy ambitions while strengthening local manufacturing.
Kenya has called on Chinese companies to establish local manufacturing of clean energy equipment, saying the country’s transition to renewable energy must create jobs, build local technical capacity and support industrial growth rather than rely solely on imported technologies.
Speaking on behalf of Energy and Petroleum Cabinet Secretary Opiyo Wandayi during the opening of the 11th China Trade Week and Megawatt Africa Expo at the Kenyatta International Convention Centre (KICC) on Tuesday, Eng Thomas Karungu, Managing Director and Alternate Director to the Principal Secretary, State Department for Energy, said Kenya is seeking long-term industrial partnerships that will accelerate its clean energy ambitions while strengthening local manufacturing.
The three-day exhibition, running from July 22 to July 24, has brought together government officials, manufacturers, investors, project developers, technology providers and energy stakeholders from Kenya, China and other countries to explore opportunities in the energy sector.
More To Read
- Government expands access to National IDs to strengthen inclusion, increase access to opportunities
- Motorists association slam EPRA for retaining fuel prices despite decline in global oil prices
- πππ¬ππ₯ππ’π π‘ ππ¨π’ππ ππ ππ’π§π – Somali community in Mombasa set for fairer ID access as governor pledges action
- Dangote’s planned Sh2.2 trillion Lamu refinery could reshape Kenya’s energy and trade landscape
- Digital economy, renewable energy lifts Kenyaβs foreign investment to record Sh413 billion – report
- Kenya joins global majority in opposing US bid to block Cuba embargo discussion at UN
Karungu said renewable energy sources, particularly wind and solar, already account for approximately 90 per cent of the electricity supplied to Kenya’s national grid, with the government targeting 100 per cent clean electricity by 2030 under the Kenya Energy Compact.
“We are equally committed to achieving universal access to electricity and clean cooking by the same year, 2030,” he said.
To support the country’s growing energy demand, the government plans to expand the national transmission network by approximately 8,000 kilometres and install about 12,000 megavolt-amperes (MVA) of transformer capacity by 2030.
Latest Stories
- Sakajaβs cabinet approves construction of phase one underground rail linking CBD to Eastlands
- Trump wants FIFA President Infantino considered for UN Secretary General role
- KMTC opens September intake applications, sets August 11 deadline for students
- Kangema Magistrate Martin Mutegi suspended after arrest over Sh170,000 bribe
Karungu said achieving those targets would require substantial investment in electricity generation, transmission and distribution infrastructure, mini-grids, battery storage and off-grid energy solutions.
“These are not modest undertakings. They require capital, technology, technical expertise, strong institutions and sustained cooperation between the public and private sectors,” he said.
He said Kenya’s partnership with China should increasingly focus on productive investment that strengthens the country’s manufacturing base and supports economic transformation.
“Kenya seeks partnerships that support local assembly, component manufacturing, technology transfer, research, technical training and the development of local supply chains,” he said.
Karungu invited Chinese investors to establish manufacturing facilities for solar panels, transformers, smart meters, transmission equipment and electric vehicle charging infrastructure, while also partnering in geothermal development, mini-grid deployment, battery storage, clean cooking technologies, waste-to-energy projects and digital electricity management systems.
He said such investments would create employment, strengthen Kenya’s engineering capabilities and position the country as a manufacturing and distribution hub for the East African region.
Addressing exhibitors at the trade fair, Karungu said Kenya offers more than a market for imported products.
“Kenya offers more than a market for your products. It offers an opportunity to establish long-term industrial partnerships,” he said, urging companies to invest locally, work with Kenyan enterprises, build after-sales and maintenance capacity and adapt their technologies to African markets.
He added that the government is particularly interested in technologies that improve grid stability, reduce system losses, expand electricity access in underserved communities and lower the cost of power for households and businesses.
Karungu also urged investors and financiers to develop innovative financing models that would make clean energy projects commercially viable while ensuring electricity remains affordable.
He challenged Kenyan manufacturers, engineers, contractors and small and medium-sized enterprises to position themselves within the country’s growing clean energy value chain.
“The transition to a modern energy system must not occur around Kenyan enterprises; it must be built with them,” he said.
He warned that an energy transition that depends permanently on imported skills and equipment would deny Kenya the full economic benefits of its clean energy ambitions.
As electricity demand continues to rise with industrialisation, urbanisation, digitalisation and the growth of electric mobility, Karungu said Kenya remains committed to investing in energy solutions that are sustainable, affordable and capable of delivering long-term economic value while protecting the environment and benefiting local communities.
Other Topics To Read
Top Stories Today
- MP Yusuf backs Gikomba traders’ call for compensation after fire as frustrations mount over delayed payouts
- Sakajaβs cabinet approves construction of phase one underground rail linking CBD to Eastlands
- Trump wants FIFA President Infantino considered for UN Secretary General role
- KMTC opens September intake applications, sets August 11 deadline for students
- Kangema Magistrate Martin Mutegi suspended after arrest over Sh170,000 bribe
- From the shadows to Harambee Stars: How patience shaped Alphonse Omija’s rise
`;
}
return “;
}
function commentActionsMarkup(comment, canComment) {
const likeLabel = comment.liked_by_me ? ‘Liked’ : ‘Like’;
const likeCount = Number(comment.like_count || 0) > 0
? “
: ”;
const likeButton = canComment && comment.status === ‘approved’
? “
: “;
const replyButton = canComment && comment.status === ‘approved’
? “
: ”;
return `
`;
}
function commentMarkup(comment, canComment, isReply = false) {
const pendingBadge = comment.status && comment.status !== ‘approved’
? “
: ”;
const edited = comment.is_edited
? “
: ”;
const repliesHtml = Array.isArray(comment.replies) && comment.replies.length
? `
`
: “;
return `
`;
}
function replyFormMarkup(commentId) {
return `
`;
}
function setNotice(widget, message, type = ‘info’) {
const notice = widget.querySelector(‘[data-role=”notice”]’);
if (!notice) return;
if (!message) {
notice.hidden = true;
notice.textContent = ”;
notice.classList.remove(‘is-error’);
return;
}
notice.hidden = false;
notice.textContent = message;
notice.classList.toggle(‘is-error’, type === ‘error’);
}
function setCount(widget, total) {
const count = widget.querySelector(‘[data-role=”count”]’);
if (!count) return;
const num = Number(total || 0);
count.textContent = num === 1 ? ‘1 comment’ : `${num} comments`;
}
function openReplyBox(widget, commentId) {
widget.querySelectorAll(‘[data-role=”reply-box”]’).forEach(box => {
box.hidden = true;
box.innerHTML = ”;
});
const targetItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
if (!targetItem) return;
const replyBox = targetItem.querySelector(‘[data-role=”reply-box”]’);
if (!replyBox) return;
replyBox.hidden = false;
replyBox.innerHTML = replyFormMarkup(commentId);
const textarea = replyBox.querySelector(‘textarea’);
if (textarea) textarea.focus();
}
function closeReplyBox(container) {
if (!container) return;
container.hidden = true;
container.innerHTML = ”;
}
async function initCommentsWidget(widget) {
const state = {
articleId: Number(widget.dataset.articleId),
loadUrl: widget.dataset.loadUrl,
storeUrl: widget.dataset.storeUrl,
commentsBaseUrl: widget.dataset.commentsBaseUrl,
canComment: widget.dataset.canComment === ‘1’,
page: 1,
perPage: 10,
sort: ‘newest’,
total: 0,
hasMore: false,
busy: false
};
const list = widget.querySelector(‘[data-role=”list”]’);
const loading = widget.querySelector(‘[data-role=”loading”]’);
const empty = widget.querySelector(‘[data-role=”empty”]’);
const loadMoreBtn = widget.querySelector(‘[data-role=”load-more”]’);
const sortSelect = widget.querySelector(‘[data-role=”sort”]’);
const composerForm = widget.querySelector(‘[data-role=”composer-form”]’);
async function loadComments(reset = true) {
if (state.busy) return;
state.busy = true;
setNotice(widget, ”);
loading.hidden = false;
if (reset) {
state.page = 1;
list.innerHTML = ”;
empty.hidden = true;
}
try {
const url = new URL(state.loadUrl, window.location.origin);
url.searchParams.set(‘page’, state.page);
url.searchParams.set(‘per_page’, state.perPage);
url.searchParams.set(‘sort’, state.sort);
const response = await requestJson(url.toString(), {
method: ‘GET’,
headers: {
‘Accept’: ‘application/json’,
‘X-Requested-With’: ‘XMLHttpRequest’
}
});
const items = Array.isArray(response.data) ? response.data : [];
const meta = response.meta || {};
state.total = Number(meta.total || 0);
state.hasMore = !!meta.has_more;
setCount(widget, state.total);
if (reset) {
list.innerHTML = ”;
}
if (!items.length && reset) {
empty.hidden = false;
} else {
empty.hidden = true;
list.insertAdjacentHTML(
‘beforeend’,
items.map(item => commentMarkup(item, state.canComment, false)).join(”)
);
}
loadMoreBtn.hidden = !state.hasMore;
} catch (error) {
if (!list.children.length) {
empty.hidden = false;
empty.textContent = ‘Unable to load comments right now.’;
}
setNotice(widget, error.message || ‘Unable to load comments.’, ‘error’);
} finally {
loading.hidden = true;
state.busy = false;
}
}
async function submitTopLevelComment(form) {
const textarea = form.querySelector(‘textarea[name=”content”]’);
const button = form.querySelector(‘[data-role=”submit-comment”]’);
if (!textarea) return;
const content = textarea.value.trim();
if (!content) return;
const originalText = button ? button.textContent : ”;
try {
if (button) {
button.disabled = true;
button.textContent = ‘Posting…’;
}
const response = await requestJson(state.storeUrl, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({
article_id: state.articleId,
content: content,
source_url: window.location.href
})
});
textarea.value = ”;
if (response?.data) {
list.insertAdjacentHTML(
‘afterbegin’,
commentMarkup(response.data, state.canComment, false)
);
empty.hidden = true;
if ((response.data.status || ”) === ‘approved’) {
state.total += 1;
setCount(widget, state.total);
}
}
setNotice(widget, response.message || ‘Comment posted successfully.’);
} catch (error) {
setNotice(widget, error.message || ‘Unable to post comment.’, ‘error’);
} finally {
if (button) {
button.disabled = false;
button.textContent = originalText || ‘Post comment’;
}
}
}
async function submitReply(form) {
const commentId = Number(form.dataset.commentId || 0);
const textarea = form.querySelector(‘textarea[name=”content”]’);
const button = form.querySelector(‘.ev-comments__reply-submit’);
if (!commentId || !textarea) return;
const content = textarea.value.trim();
if (!content) return;
const originalText = button ? button.textContent : ”;
try {
if (button) {
button.disabled = true;
button.textContent = ‘Posting…’;
}
const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/reply`, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({
article_id: state.articleId,
content: content,
source_url: window.location.href
})
});
if (response?.data) {
const parentItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
if (parentItem) {
const repliesWrap = parentItem.querySelector(‘.ev-comments__replies’);
if (repliesWrap) {
repliesWrap.insertAdjacentHTML(
‘beforeend’,
commentMarkup(response.data, state.canComment, true)
);
}
}
}
closeReplyBox(form.closest(‘[data-role=”reply-box”]’));
setNotice(widget, response.message || ‘Reply posted successfully.’);
} catch (error) {
setNotice(widget, error.message || ‘Unable to post reply.’, ‘error’);
} finally {
if (button) {
button.disabled = false;
button.textContent = originalText || ‘Post reply’;
}
}
}
async function toggleLike(button) {
const commentId = Number(button.dataset.commentId || 0);
if (!commentId) return;
const originalHtml = button.innerHTML;
try {
button.disabled = true;
button.innerHTML = ‘Working…’;
const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/like`, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({})
});
const liked = !!response?.data?.liked;
const likeCount = Number(response?.data?.like_count || 0);
button.classList.toggle(‘is-liked’, liked);
button.innerHTML = `${liked ? ‘Liked’ : ‘Like’} ${likeCount > 0 ? “ : ”}`;
} catch (error) {
button.innerHTML = originalHtml;
setNotice(widget, error.message || ‘Unable to update like.’, ‘error’);
} finally {
button.disabled = false;
}
}
if (composerForm) {
composerForm.addEventListener(‘submit’, function (e) {
e.preventDefault();
submitTopLevelComment(composerForm);
});
}
if (sortSelect) {
sortSelect.addEventListener(‘change’, function () {
state.sort = this.value || ‘newest’;
loadComments(true);
});
}
if (loadMoreBtn) {
loadMoreBtn.addEventListener(‘click’, function () {
if (state.busy || !state.hasMore) return;
state.page += 1;
loadComments(false);
});
}
widget.addEventListener(‘click’, function (e) {
const likeBtn = e.target.closest(‘[data-action=”toggle-like”]’);
if (likeBtn) {
e.preventDefault();
toggleLike(likeBtn);
return;
}
const replyBtn = e.target.closest(‘[data-action=”toggle-reply”]’);
if (replyBtn) {
e.preventDefault();
openReplyBox(widget, Number(replyBtn.dataset.commentId || 0));
return;
}
const cancelReplyBtn = e.target.closest(‘[data-action=”cancel-reply”]’);
if (cancelReplyBtn) {
e.preventDefault();
closeReplyBox(cancelReplyBtn.closest(‘[data-role=”reply-box”]’));
}
});
widget.addEventListener(‘submit’, function (e) {
const replyForm = e.target.closest(‘.ev-comments__reply-form’);
if (replyForm) {
e.preventDefault();
submitReply(replyForm);
}
});
loadComments(true);
}
document.addEventListener(‘DOMContentLoaded’, function () {
document.querySelectorAll(‘.ev-comments’).forEach(initCommentsWidget);
});
})();
Trending
Kangema Magistrate Martin Mutegi suspended after arrest over Sh170,000 bribeNews
|Mary Wambui
|56 minutes ago

CCTV footage shows Albert Ojwang was removed from Central Police Station while unresponsiveNews
|Lucy Mumbi
|6 hours ago
Start-ups in Mombasa to access up to Sh2.5 million as new innovation hub targets youth enterpriseNews
|Farhiya Hussein
|2 hours ago
Team Kenya fired up for Commonwealth Games as athletes receive rallying callAthletics
|Amina Wako
|1 day ago

Talanta Stadium contractor to face prosecution over workerβs death, labour violations – MutuaNews
|Lucy Mumbi
|2 hours ago
From the shadows to Harambee Stars: How patience shaped Alphonse Omija’s riseNews
|Erick Kariuki
|1 hour ago
Uganda Airlines orders eight Boeing aircraft in landmark fleet expansionRegional
|Bashir Mbuthia
|17 hours ago
Study: 78 per cent of Nairobi, Nakuru vegetables contain pesticide residuesVideos
|Zawadi Charity
|20 hours ago
Tigrayβs old grapevines have survived against the odds: New research uncovers their genetic, historic valueEthiopia
|The Conversation
|6 hours ago

22 people arraigned over traffic obstruction as NTSA targets pedestrians ignoring footbridgesNews
|Lucy Mumbi
|1 day ago